KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Wykonanie przepływu w pluginie (Flow → KretS)
Oficjalna ścieżka wykonania KretFlow: kod KretS wygenerowany z grafu (`kret flow to-krets`) jest modułem `Restock` pluginu, a `Main.Start` go wywołuje. Wykonanie odbywa się w izolowanym procesie pluginu, z tymi samymi uprawnieniami i limitami co każdy kod KretS. Dodatkowo `kret flow run … --module` wykonuje graf w procesie narzędzia (host pozwala tylko na dziennik).
Witryna nie wykonuje kodu ani nie prowadzi walidacji SDK. Wyniki poniżej pochodzą z eksportu określonej wersji i przestają opisywać kod po jego zmianie.
Kanoniczne pliki projektu
{
"format": "kretflow-ir/2",
"name": "Restock",
"variables": [
{ "name": "stock", "type": "Int64", "initial": "2" },
{ "name": "ordered", "type": "Int64", "initial": "0" },
{ "name": "cost", "type": "Int64", "initial": "0" },
{ "name": "note", "type": "String", "initial": "\"\"" }
],
"nodes": [
{ "id": "start", "kind": "trigger", "event": "stock.low", "position": { "x": 40, "y": 40 } },
{ "id": "enough", "kind": "loop", "expression": "stock < 10", "position": { "x": 200, "y": 40 } },
{ "id": "order", "kind": "assign", "variable": "ordered", "expression": "ordered + 4", "position": { "x": 360, "y": 0 } },
{ "id": "deliver", "kind": "assign", "variable": "stock", "expression": "stock + 4", "position": { "x": 520, "y": 0 } },
{ "id": "price", "kind": "action", "variable": "cost", "call": "Orders.price", "arguments": ["ordered"], "position": { "x": 360, "y": 120 } },
{ "id": "large", "kind": "condition", "expression": "cost > 100", "position": { "x": 520, "y": 120 } },
{ "id": "big", "kind": "assign", "variable": "note", "expression": "\"duże zamówienie\"", "position": { "x": 680, "y": 80 } },
{ "id": "small", "kind": "assign", "variable": "note", "expression": "\"zwykłe zamówienie\"", "position": { "x": 680, "y": 160 } },
{ "id": "say", "kind": "action", "call": "log.info", "arguments": ["note + \": \" + toString(ordered) + \" szt.\""], "position": { "x": 840, "y": 120 } },
{ "id": "done", "kind": "end", "expression": "note + \", sztuk: \" + toString(ordered) + \", koszt: \" + toString(cost)", "position": { "x": 1000, "y": 120 } }
],
"edges": [
{ "from": "start", "port": "next", "to": "enough" },
{ "from": "enough", "port": "body", "to": "order" },
{ "from": "order", "port": "next", "to": "deliver" },
{ "from": "deliver", "port": "next", "to": "enough" },
{ "from": "enough", "port": "done", "to": "price" },
{ "from": "price", "port": "next", "to": "large" },
{ "from": "large", "port": "true", "to": "big" },
{ "from": "large", "port": "false", "to": "small" },
{ "from": "big", "port": "next", "to": "say" },
{ "from": "small", "port": "next", "to": "say" },
{ "from": "say", "port": "next", "to": "done" }
]
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kretflow-ir/2",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "Restock",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variables": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{ "name": "stock", "type": "Int64", "initial": "2" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "name": "ordered", "type": "Int64", "initial": "0" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "name": "cost", "type": "Int64", "initial": "0" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "name": "note", "type": "String", "initial": "\"\"" }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."nodes": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{ "id": "start", "kind": "trigger", "event": "stock.low", "position": { "x": 40, "y": 40 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "enough", "kind": "loop", "expression": "stock < 10", "position": { "x": 200, "y": 40 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "order", "kind": "assign", "variable": "ordered", "expression": "ordered + 4", "position": { "x": 360, "y": 0 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "deliver", "kind": "assign", "variable": "stock", "expression": "stock + 4", "position": { "x": 520, "y": 0 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "price", "kind": "action", "variable": "cost", "call": "Orders.price", "arguments": ["ordered"], "position": { "x": 360, "y": 120 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "large", "kind": "condition", "expression": "cost > 100", "position": { "x": 520, "y": 120 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "big", "kind": "assign", "variable": "note", "expression": "\"duże zamówienie\"", "position": { "x": 680, "y": 80 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "small", "kind": "assign", "variable": "note", "expression": "\"zwykłe zamówienie\"", "position": { "x": 680, "y": 160 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "say", "kind": "action", "call": "log.info", "arguments": ["note + \": \" + toString(ordered) + \" szt.\""], "position": { "x": 840, "y": 120 } },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "id": "done", "kind": "end", "expression": "note + \", sztuk: \" + toString(ordered) + \", koszt: \" + toString(cost)", "position": { "x": 1000, "y": 120 } }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."edges": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{ "from": "start", "port": "next", "to": "enough" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "enough", "port": "body", "to": "order" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "order", "port": "next", "to": "deliver" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "deliver", "port": "next", "to": "enough" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "enough", "port": "done", "to": "price" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "price", "port": "next", "to": "large" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "large", "port": "true", "to": "big" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "large", "port": "false", "to": "small" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "big", "port": "next", "to": "say" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "small", "port": "next", "to": "say" },Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{ "from": "say", "port": "next", "to": "done" }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.]Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.
Wynik i typowy błąd
„duże zamówienie, sztuk: 8, koszt: 120” w obu ścieżkach; `flow run` zwraca też status `Completed` i listę odwiedzonych bloków.
`kret flow run` bez `--module`: funkcje KretS projektu nie są dowiązane (`KCS-FLW-0013`, znane ograniczenie SDK-D01).
Wymagania wersji i procedura lokalna
- sdk
- 1.0.0-rc.3+kret.local.3
- sdkInfoReports
- 1.0.0-rc.3
- core
- 1.0.0-test.6.11-draft.1
- os
- Windows 11 x64
- dotnet
- .NET 10 runtime
Polecenia poniżej są instrukcją do samodzielnego wykonania z właściwym lokalnym SDK. DATA/OUT muszą wskazywać nowe katalogi testowe. Nie ma przycisku uruchamiania na serwerze.
- check
kret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0 - run-plugin
kret run . --policy host-policy.json --data {DATA}Katalog: project · Oczekiwany kod wyjścia: 0 - flow-run-module
kret flow run Flow/Restock.kflow --module Script/Orders.krsKatalog: project · Oczekiwany kod wyjścia: 0
Wyniki zapisane w pakiecie źródłowym
To dowód z eksportu, nie wynik bieżącego wykonania w przeglądarce.
# EXPECTED_OUTPUT — KRETFLOW-I01-FlowExecutedAsKretS
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:29Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.
# Actual output of the run. Paths replaced by placeholders.
### 1. check (exit 0, PASS)
> kret check . --json
{
"format": "kret-diagnostics/1",
"project": "<project>",
"succeeded": true,
"plugin": {
"id": "LOCAL-KPL-FLM2PLUG",
"name": "FlowAsKretS",
"version": "1.0.0",
"profile": "standard",
"database": false
},
"permissions": {
"required": [
"logs.own.write"
],
"optional": []
},
"handlers": {
"lifecycle": [
"start",
"shutdown"
],
"events": [],
"commands": []
},
"diagnostics": []
}
### 2. run-plugin (exit 0, PASS)
> kret run . --policy host-policy.json --data {DATA}
{
"broker": {
"pid": 18996,
"startupMs": 45.4158,
"pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
"allowProvisionalRisk": true,
"memoryIdle": {
"managedBytes": 1193392,
"allocatedBytes": 1190752,
"workingSetBytes": 32526336,
"privateBytes": 10076160,
"peakWorkingSetBytes": 32526336,
"cpuMs": 93.75
}
},
"brokerWithPlugins": {
"memory": {
"managedBytes": 1540344,
"allocatedBytes": 1537224,
"workingSetBytes": 38985728,
"privateBytes": 13811712,
"peakWorkingSetBytes": 39018496,
"cpuMs": 171.875
}
},
"plugins": [
{
"package": "<project>\\Build",
"admitted": true,
"startMs": 151.6192,
"subject": "LOCAL-KPL-FLM2PLUG",
"instance": "01a19725-a599-79fb-8f17-5cd781c96f1d",
"pid": 43116,
"jobObject": true,
"isolation": {
"level": "Restricted",
"restrictedToken": true,
"lowIntegrity": true,
"appContainer": false
},
"limits": {
"profile": "standard",
"scriptMemoryBytes": 67108864,
"processMemoryBytes": 201326592,
"cpuPercent": 25,
"maxInstructions": 50000000,
"clamped": []
},
"calls": [
{
"operation": "start",
"ok": true,
"status": "Completed",
"type": "String",
"value": "du\u017Ce zam\u00F3wienie, sztuk: 8, koszt: 120",
"brokerMs": 15.9979,
"vmMs": 12.8575,
"instructions": 77,
"hostCalls": 1,
"pluginReportedMemory": {
"managedBytes": 776512,
"allocatedBytes": 774352,
"workingSetBytes": 32309248,
"privateBytes": 11210752,
"peakWorkingSetBytes": 32530432,
"cpuMs": 62.5
}
},
{
"operation": "shutdown",
"ok": true,
"status": "Completed",
"type": "Unit",
"value": null,
"brokerMs": 0.6417,
"vmMs": 0.0012,
"instructions": 1,
"hostCalls": 0,
"pluginReportedMemory": {
"managedBytes": 792960,
"allocatedBytes": 790752,
"workingSetBytes": 32321536,
"privateBytes": 11210752,
"peakWorkingSetBytes": 32530432,
"cpuMs": 62.5
}
}
],
"processMemoryMeasuredByBroker": {
"workingSetBytes": 32321536,
"privateBytes": 11210752,
"peakWorkingSetBytes": 32530432,
"cpuMs": 78.125
},
"summary": {
"exitCode": 0,
"killed": false,
"hostCalls": 1,
"denials": 0,
"peakCommitBytes": 12066816,
"log": [
"[info] du\u017Ce zam\u00F3wienie: 8 szt."
]
}
}
],
"brokerAfterClose": {
"memory": {
"managedBytes": 588360,
"allocatedBytes": 1537224,
"workingSetBytes": 40058880,
"privateBytes": 14479360,
"peakWorkingSetBytes": 40058880,
"cpuMs": 187.5
}
},
"audit": {
"entries": 12,
"denials": 0,
"grantsIssued": 1,
"denied": []
},
"exitCode": 0
}
### 3. flow-run-module (exit 0, PASS)
> kret flow run Flow/Restock.kflow --module Script/Orders.krs
{
"flow": "Restock",
"status": "Completed",
"result": "duże zamówienie, sztuk: 8, koszt: 120",
"code": "",
"message": "",
"failedNode": "",
"visited": [
"start",
"enough",
"order",
"deliver",
"enough",
"order",
"deliver",
"enough",
"price",
"large",
"big",
"say",
"done"
],
"checkpoints": 0,
"instructions": 413
}
[stderr]
[info] duże zamówienie: 8 szt.
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
# EXPECTED_OUTPUT — KRETFLOW-I01-FlowExecutedAsKretSOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:29Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.# Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.### 1. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."id": "LOCAL-KPL-FLM2PLUG",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "FlowAsKretS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."database": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."logs.own.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."commands": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 2. run-plugin (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret run . --policy host-policy.json --data {DATA}Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 18996,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startupMs": 45.4158,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1193392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1190752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32526336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 10076160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32526336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1540344,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1537224,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 38985728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 13811712,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 39018496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startMs": 151.6192,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-FLM2PLUG",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instance": "01a19725-a599-79fb-8f17-5cd781c96f1d",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 43116,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "du\u017Ce zam\u00F3wienie, sztuk: 8, koszt: 120",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 15.9979,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 12.8575,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 77,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 776512,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 774352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32309248,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11210752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 62.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 0.6417,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 0.0012,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 792960,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 790752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32321536,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11210752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 62.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32321536,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11210752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 78.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakCommitBytes": 12066816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."log": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."[info] du\u017Ce zam\u00F3wienie: 8 szt."Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.]Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 588360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1537224,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 40058880,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14479360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 40058880,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 187.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."entries": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."grantsIssued": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 3. flow-run-module (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret flow run Flow/Restock.kflow --module Script/Orders.krsOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."flow": "Restock",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."result": "duże zamówienie, sztuk: 8, koszt: 120",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."failedNode": "",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."visited": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."enough",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."order",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."deliver",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."enough",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."order",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."deliver",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."enough",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."price",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."large",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."big",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."say",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."done"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."checkpoints": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 413Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.[stderr]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.[info] duże zamówienie: 8 szt.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.Pusta linia oddziela fragmenty źródła.
Diagnostyka i raporty testów
null
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
nullOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
Graf KretFlow — dane źródłowe
{
"format": "kretflow-ir/2",
"name": "Restock",
"variables": [
{
"name": "stock",
"type": "Int64",
"initial": "2"
},
{
"name": "ordered",
"type": "Int64",
"initial": "0"
},
{
"name": "cost",
"type": "Int64",
"initial": "0"
},
{
"name": "note",
"type": "String",
"initial": "\"\""
}
],
"nodes": [
{
"id": "start",
"kind": "trigger",
"event": "stock.low",
"position": {
"x": 40,
"y": 40
}
},
{
"id": "enough",
"kind": "loop",
"expression": "stock < 10",
"position": {
"x": 200,
"y": 40
}
},
{
"id": "order",
"kind": "assign",
"variable": "ordered",
"expression": "ordered + 4",
"position": {
"x": 360,
"y": 0
}
},
{
"id": "deliver",
"kind": "assign",
"variable": "stock",
"expression": "stock + 4",
"position": {
"x": 520,
"y": 0
}
},
{
"id": "price",
"kind": "action",
"variable": "cost",
"call": "Orders.price",
"arguments": [
"ordered"
],
"position": {
"x": 360,
"y": 120
}
},
{
"id": "large",
"kind": "condition",
"expression": "cost > 100",
"position": {
"x": 520,
"y": 120
}
},
{
"id": "big",
"kind": "assign",
"variable": "note",
"expression": "\"duże zamówienie\"",
"position": {
"x": 680,
"y": 80
}
},
{
"id": "small",
"kind": "assign",
"variable": "note",
"expression": "\"zwykłe zamówienie\"",
"position": {
"x": 680,
"y": 160
}
},
{
"id": "say",
"kind": "action",
"call": "log.info",
"arguments": [
"note + \": \" + toString(ordered) + \" szt.\""
],
"position": {
"x": 840,
"y": 120
}
},
{
"id": "done",
"kind": "end",
"expression": "note + \", sztuk: \" + toString(ordered) + \", koszt: \" + toString(cost)",
"position": {
"x": 1000,
"y": 120
}
}
],
"edges": [
{
"from": "start",
"port": "next",
"to": "enough"
},
{
"from": "enough",
"port": "body",
"to": "order"
},
{
"from": "order",
"port": "next",
"to": "deliver"
},
{
"from": "deliver",
"port": "next",
"to": "enough"
},
{
"from": "enough",
"port": "done",
"to": "price"
},
{
"from": "price",
"port": "next",
"to": "large"
},
{
"from": "large",
"port": "true",
"to": "big"
},
{
"from": "large",
"port": "false",
"to": "small"
},
{
"from": "big",
"port": "next",
"to": "say"
},
{
"from": "small",
"port": "next",
"to": "say"
},
{
"from": "say",
"port": "next",
"to": "done"
}
]
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kretflow-ir/2",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "Restock",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variables": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."name": "stock",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Int64",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."initial": "2"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."name": "ordered",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Int64",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."initial": "0"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."name": "cost",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Int64",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."initial": "0"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."name": "note",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."initial": "\"\""Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."nodes": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "trigger",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."event": "stock.low",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 40,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 40Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "enough",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "loop",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "stock < 10",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 200,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 40Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "order",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "assign",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variable": "ordered",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "ordered + 4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "deliver",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "assign",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variable": "stock",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "stock + 4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "price",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "action",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variable": "cost",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."call": "Orders.price",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."arguments": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ordered"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 120Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "large",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "condition",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "cost > 100",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 120Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "big",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "assign",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variable": "note",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "\"duże zamówienie\"",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 680,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 80Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "small",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "assign",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."variable": "note",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "\"zwykłe zamówienie\"",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 680,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 160Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "say",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "action",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."call": "log.info",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."arguments": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."note + \": \" + toString(ordered) + \" szt.\""Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.],Zamknięcie struktury otwartej we wcześniejszych liniach."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 840,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 120Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "done",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kind": "end",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."expression": "note + \", sztuk: \" + toString(ordered) + \", koszt: \" + toString(cost)",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."position": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."x": 1000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."y": 120Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."edges": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "enough"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "enough",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "body",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "order"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "order",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "deliver"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "deliver",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "enough"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "enough",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "done",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "price"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "price",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "large"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "large",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "true",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "big"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "large",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "false",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "small"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "big",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "say"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "small",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "say"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."from": "say",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."port": "next",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."to": "done"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.]Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.
Pochodzenie i integralność
KRET_LANGUAGE_KRETFLOW.zip:KretFlow/Examples/INTERMEDIATE_FlowExecutedAsKretS/example.json
02_PLAYGROUND/EXAMPLES/KRETFLOW-I01-FlowExecutedAsKretS.json
SHA-256 179FED410B86B592F49468BD2D8511195ED5AF98E53BC8C3EDEFDA55E8CA0939Materiały źródłowe do tego tematu
Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.
KRETFLOW-I01-FlowExecutedAsKretS — Wykonanie przepływu w pluginie (Flow → KretS)
KRETFLOW-I01-FlowExecutedAsKretS — Wykonanie przepływu w pluginie (Flow → KretS)
🇬🇧 English version below.
| Pole | Wartość |
|---|---|
| Technologia | KretFlow |
| Poziom | INTERMEDIATE |
| Klasyfikacja | RUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu) |
| Playground | LOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie) |
| SDK | 1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany) |
| Wynik testu | TEST_RESULTS.json, rzeczywisty wynik: EXPECTED_OUTPUT.txt |
Co pokazuje
Oficjalna ścieżka wykonania KretFlow: kod KretS wygenerowany z grafu (kret flow to-krets) jest modułem Restock pluginu, a Main.Start go wywołuje. Wykonanie odbywa się w izolowanym procesie pluginu, z tymi samymi uprawnieniami i limitami co każdy kod KretS. Dodatkowo kret flow run … --module wykonuje graf w procesie narzędzia (host pozwala tylko na dziennik).
Pliki
| Plik |
|---|
Flow/Restock.kflow |
Script/Main.krs |
Script/Orders.krs |
Script/Restock.krs |
host-policy.json |
plugin.kretl |
Jak uruchomić
Katalog roboczy: katalog tego przykładu. kret oznacza <SDK>\Compiler\kret.exe, kretui-host — <SDK>\UiHost\kretui-host.exe. {DATA} / {OUT} to nowe, puste katalogi poza projektem. Wymagania: REQUIREMENTS.md.
kret check . --json— walidacjakret run . --policy host-policy.json --data {DATA}— wykonanie przepływu jako KretS w pluginiekret flow run Flow/Restock.kflow --module Script/Orders.krs— wykonanie grafu w narzędziu z modułemOrders
Oczekiwany wynik
„duże zamówienie, sztuk: 8, koszt: 120” w obu ścieżkach; flow run zwraca też status Completed i listę odwiedzonych bloków.
Najczęstszy błąd
kret flow run bez --module: funkcje KretS projektu nie są dowiązane (KCS-FLW-0013, znane ograniczenie SDK-D01).
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →