ai-workflow-flow-dsl-reference 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -0
- package/dist/index.js +18 -0
- package/dist/resource-module/KindDefinitions/WikiPage/manifest.xnl +10 -0
- package/dist/resource-module/WikiPages/README/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/foundation__depa-axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/foundation__naming-axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/foundation__syntax-axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__ai-workflow__ctrl-workflow/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__ai-workflow__data-workflow/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__ai-workflow__resources/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__bp-ctrl-flow__domains/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__bp-ctrl-flow__nodes/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__eager-data-flow__domains/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__eager-data-flow__files/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__eager-data-flow__nodes/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__eager-data-flow__refs/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__flow-core__domains/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__flow-core__files/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__flow-core__nodes/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__flow-core__orchestration/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__flow-core__refs/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__instant-ctrl-flow__domains/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__instant-ctrl-flow__nodes/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__work-ctrl-flow__domains/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/spec__work-ctrl-flow__nodes/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__ai-ctrl-workflow__axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__ai-data-workflow__axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__behavior-tree__axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__bp-ctrl-flow__axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__eager-data-flow__axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__instant-ctrl-flow__axioms/manifest.xnl +6 -0
- package/dist/resource-module/WikiPages/std__work-ctrl-flow__axioms/manifest.xnl +6 -0
- package/dist/resource-module/content/.depa-flow-dsl-provenance.json +127 -0
- package/dist/resource-module/content/README.md +164 -0
- package/dist/resource-module/content/foundation/depa-axioms.md +41 -0
- package/dist/resource-module/content/foundation/naming-axioms.md +167 -0
- package/dist/resource-module/content/foundation/syntax-axioms.md +60 -0
- package/dist/resource-module/content/spec/ai-workflow/ctrl-workflow.md +53 -0
- package/dist/resource-module/content/spec/ai-workflow/data-workflow.md +78 -0
- package/dist/resource-module/content/spec/ai-workflow/resources.md +242 -0
- package/dist/resource-module/content/spec/bp-ctrl-flow/domains.md +30 -0
- package/dist/resource-module/content/spec/bp-ctrl-flow/nodes.md +122 -0
- package/dist/resource-module/content/spec/eager-data-flow/domains.md +59 -0
- package/dist/resource-module/content/spec/eager-data-flow/files.md +68 -0
- package/dist/resource-module/content/spec/eager-data-flow/nodes.md +151 -0
- package/dist/resource-module/content/spec/eager-data-flow/refs.md +90 -0
- package/dist/resource-module/content/spec/flow-core/domains.md +39 -0
- package/dist/resource-module/content/spec/flow-core/files.md +50 -0
- package/dist/resource-module/content/spec/flow-core/nodes.md +203 -0
- package/dist/resource-module/content/spec/flow-core/orchestration.md +161 -0
- package/dist/resource-module/content/spec/flow-core/refs.md +78 -0
- package/dist/resource-module/content/spec/instant-ctrl-flow/domains.md +20 -0
- package/dist/resource-module/content/spec/instant-ctrl-flow/nodes.md +47 -0
- package/dist/resource-module/content/spec/work-ctrl-flow/domains.md +29 -0
- package/dist/resource-module/content/spec/work-ctrl-flow/nodes.md +90 -0
- package/dist/resource-module/content/std/ai-ctrl-workflow/axioms.md +31 -0
- package/dist/resource-module/content/std/ai-data-workflow/axioms.md +24 -0
- package/dist/resource-module/content/std/behavior-tree/axioms.md +72 -0
- package/dist/resource-module/content/std/bp-ctrl-flow/axioms.md +48 -0
- package/dist/resource-module/content/std/eager-data-flow/axioms.md +57 -0
- package/dist/resource-module/content/std/instant-ctrl-flow/axioms.md +37 -0
- package/dist/resource-module/content/std/work-ctrl-flow/axioms.md +54 -0
- package/dist/resource-module/manifest.xnl +9 -0
- package/package.json +29 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AuthoringModuleDescriptor } from 'halfcode-compiler.xnl';
|
|
2
|
+
export declare const AI_WORKFLOW_FLOW_DSL_REFERENCE_MODULE: Readonly<{
|
|
3
|
+
readonly id: "DepaFlowsFlowDslReference";
|
|
4
|
+
readonly packageName: "ai-workflow-flow-dsl-reference";
|
|
5
|
+
readonly family: "depa-flow-dsl";
|
|
6
|
+
readonly scope: "shared";
|
|
7
|
+
}>;
|
|
8
|
+
export declare function loadAIWorkflowFlowDslReferenceModule(): AuthoringModuleDescriptor;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/index.ts
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
var AI_WORKFLOW_FLOW_DSL_REFERENCE_MODULE = Object.freeze({
|
|
4
|
+
id: "DepaFlowsFlowDslReference",
|
|
5
|
+
packageName: "ai-workflow-flow-dsl-reference",
|
|
6
|
+
family: "depa-flow-dsl",
|
|
7
|
+
scope: "shared"
|
|
8
|
+
});
|
|
9
|
+
function loadAIWorkflowFlowDslReferenceModule() {
|
|
10
|
+
return Object.freeze({
|
|
11
|
+
...AI_WORKFLOW_FLOW_DSL_REFERENCE_MODULE,
|
|
12
|
+
resourceRootDir: fileURLToPath(new URL("./resource-module/", import.meta.url))
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
loadAIWorkflowFlowDslReferenceModule,
|
|
17
|
+
AI_WORKFLOW_FLOW_DSL_REFERENCE_MODULE
|
|
18
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<KindDefinition #Halfcode.ResourceDsl.KindDefinition.WikiPage apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Kind definition for canonical documentation pages referenced from the Resource DSL package root."
|
|
4
|
+
resourceKind = "WikiPage"
|
|
5
|
+
sourceShapes = ["directory"]
|
|
6
|
+
currentApiVersion = "halfcode.resources/v1"
|
|
7
|
+
supportedApiVersions = ["halfcode.resources/v1"]
|
|
8
|
+
} (
|
|
9
|
+
<DescriptorContract>
|
|
10
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Readme apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: README.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/README.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Foundation.Depa.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: foundation/depa-axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/foundation/depa-axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Foundation.Naming.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: foundation/naming-axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/foundation/naming-axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Foundation.Syntax.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: foundation/syntax-axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/foundation/syntax-axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Ai.Workflow.Ctrl.Workflow apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/ai-workflow/ctrl-workflow.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/ai-workflow/ctrl-workflow.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Ai.Workflow.Data.Workflow apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/ai-workflow/data-workflow.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/ai-workflow/data-workflow.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Ai.Workflow.Resources apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/ai-workflow/resources.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/ai-workflow/resources.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Bp.Ctrl.Flow.Domains apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/bp-ctrl-flow/domains.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/bp-ctrl-flow/domains.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Bp.Ctrl.Flow.Nodes apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/bp-ctrl-flow/nodes.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/bp-ctrl-flow/nodes.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Eager.Data.Flow.Domains apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/eager-data-flow/domains.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/eager-data-flow/domains.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Eager.Data.Flow.Files apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/eager-data-flow/files.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/eager-data-flow/files.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Eager.Data.Flow.Nodes apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/eager-data-flow/nodes.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/eager-data-flow/nodes.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Eager.Data.Flow.Refs apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/eager-data-flow/refs.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/eager-data-flow/refs.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Flow.Core.Domains apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/flow-core/domains.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/flow-core/domains.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Flow.Core.Files apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/flow-core/files.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/flow-core/files.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Flow.Core.Nodes apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/flow-core/nodes.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/flow-core/nodes.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Flow.Core.Orchestration apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/flow-core/orchestration.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/flow-core/orchestration.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Flow.Core.Refs apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/flow-core/refs.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/flow-core/refs.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Instant.Ctrl.Flow.Domains apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/instant-ctrl-flow/domains.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/instant-ctrl-flow/domains.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Instant.Ctrl.Flow.Nodes apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/instant-ctrl-flow/nodes.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/instant-ctrl-flow/nodes.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Work.Ctrl.Flow.Domains apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/work-ctrl-flow/domains.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/work-ctrl-flow/domains.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Spec.Work.Ctrl.Flow.Nodes apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: spec/work-ctrl-flow/nodes.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/spec/work-ctrl-flow/nodes.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Ai.Ctrl.Workflow.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/ai-ctrl-workflow/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/ai-ctrl-workflow/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Ai.Data.Workflow.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/ai-data-workflow/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/ai-data-workflow/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Behavior.Tree.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/behavior-tree/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/behavior-tree/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Bp.Ctrl.Flow.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/bp-ctrl-flow/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/bp-ctrl-flow/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Eager.Data.Flow.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/eager-data-flow/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/eager-data-flow/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Instant.Ctrl.Flow.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/instant-ctrl-flow/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/instant-ctrl-flow/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<WikiPage #Depa.Flows.FlowDsl.Reference.Wiki.Std.Work.Ctrl.Flow.Axioms apiVersion="halfcode.resources/v1" version="1.0.0" {
|
|
2
|
+
lifecycle = "Stable"
|
|
3
|
+
description = "Canonical depa Flow DSL reference page: std/work-ctrl-flow/axioms.md."
|
|
4
|
+
} (
|
|
5
|
+
<Instruction { href = "vfs://@/content/std/work-ctrl-flow/axioms.md" format = "markdown" }>
|
|
6
|
+
)>
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "depa.flow-dsl-reference/v1",
|
|
3
|
+
"moduleId": "DepaFlowsFlowDslReference",
|
|
4
|
+
"packageName": "ai-workflow-flow-dsl-reference",
|
|
5
|
+
"packageVersion": "0.1.0",
|
|
6
|
+
"resourcePackageVersion": "1.0.0",
|
|
7
|
+
"source": "depa-flows/docs/flow-dsl",
|
|
8
|
+
"sourceTreeDigest": "sha256:21151172535409eb611183cb23793fc0165001144cb61ce8ec0b422de697a7c9",
|
|
9
|
+
"files": [
|
|
10
|
+
{
|
|
11
|
+
"path": "README.md",
|
|
12
|
+
"contentDigest": "sha256:aacd35d85c5c31a472743b7969b0c3bf535800c12962499daa57eeca231a2734"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"path": "foundation/depa-axioms.md",
|
|
16
|
+
"contentDigest": "sha256:1c35c372e2832f88663308b949faeb17a48eae8c43ab40ee08f10f3e027fa974"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "foundation/naming-axioms.md",
|
|
20
|
+
"contentDigest": "sha256:4b16cfa07bc6b6bca05f9d73a8755d5941cf1db8f433cdcb8895fd4c275844e8"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"path": "foundation/syntax-axioms.md",
|
|
24
|
+
"contentDigest": "sha256:7cdbc1dbab090333f0da8aa40e23d1344d8483049f57ec242276907232963b57"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "spec/ai-workflow/ctrl-workflow.md",
|
|
28
|
+
"contentDigest": "sha256:0dad16b872a59a8ebef2f7e5b7c94ea778a0d8f3488c611a8c66bbb2014f6265"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"path": "spec/ai-workflow/data-workflow.md",
|
|
32
|
+
"contentDigest": "sha256:87f9b40adf969b0cb0345bf6b81ffd40aefd99ccb972271f92f0bb3f00209b7d"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"path": "spec/ai-workflow/resources.md",
|
|
36
|
+
"contentDigest": "sha256:5a02995f6a30a1fd5f80f94be4e2244b9c804d3cff7275f2fc57712c75b3a822"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"path": "spec/bp-ctrl-flow/domains.md",
|
|
40
|
+
"contentDigest": "sha256:db9eff34461ee4387b5c62afd2c88a6308d351a085c1211ab94cad4162b21177"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"path": "spec/bp-ctrl-flow/nodes.md",
|
|
44
|
+
"contentDigest": "sha256:e30419ee5a166db531744520d1ce2092b2f0cdd8d86da64063e6bbc50a0587e7"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"path": "spec/eager-data-flow/domains.md",
|
|
48
|
+
"contentDigest": "sha256:0dc721e79f64e7b81be438b6f280322963b89b535e947462c7e50054a62723cf"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"path": "spec/eager-data-flow/files.md",
|
|
52
|
+
"contentDigest": "sha256:d5c58ba5ebec5abee8058a35096d363aad872a91322ae6308c06874d7b0d1dd1"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"path": "spec/eager-data-flow/nodes.md",
|
|
56
|
+
"contentDigest": "sha256:173fe3c8b6e7bfe42e41a6785c2a5f4653fd4c472d1f48fcd3ba22692fd69e5a"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"path": "spec/eager-data-flow/refs.md",
|
|
60
|
+
"contentDigest": "sha256:eb94d66dfdd7a20c9be84338607281184bb908d579d475d6bc9f2d147b8c7333"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"path": "spec/flow-core/domains.md",
|
|
64
|
+
"contentDigest": "sha256:0ab047440696232eb99199639a628766edc068b4c63f523f62ebd22afa0d569a"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"path": "spec/flow-core/files.md",
|
|
68
|
+
"contentDigest": "sha256:0f0a66aac65c8c59d5e6dd462ddceb0ebb579c4b95a34c2579bd608b85cf655c"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"path": "spec/flow-core/nodes.md",
|
|
72
|
+
"contentDigest": "sha256:732f74f90e34bee64e6ed1c7b158b3192839f4fd30f254eba0f8205e6d648338"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"path": "spec/flow-core/orchestration.md",
|
|
76
|
+
"contentDigest": "sha256:c8bfa56f796860653a660059dd1cd2575533d66bcb369d18dffb2fcbe1a2ac32"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"path": "spec/flow-core/refs.md",
|
|
80
|
+
"contentDigest": "sha256:a85922ff7b681eca0925afc4a3b804922ea4e4e4552d21d0d875930d2d24e3de"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"path": "spec/instant-ctrl-flow/domains.md",
|
|
84
|
+
"contentDigest": "sha256:c59f0821df6007da64e341f4fc359244e1394020879b29023f216572a944e25d"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"path": "spec/instant-ctrl-flow/nodes.md",
|
|
88
|
+
"contentDigest": "sha256:332dabf3c05acfea45dac712db224c42f8f39d8375d6950515e987e6dd798af5"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"path": "spec/work-ctrl-flow/domains.md",
|
|
92
|
+
"contentDigest": "sha256:16094a4f79ceddcfbedd1637cb6217735ba9a9691ec25034d9698a205d8e0e0f"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"path": "spec/work-ctrl-flow/nodes.md",
|
|
96
|
+
"contentDigest": "sha256:8701cd999d77385004d9e70c4ea41c1553fd6f08d695aad242e60fb4c14e333c"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"path": "std/ai-ctrl-workflow/axioms.md",
|
|
100
|
+
"contentDigest": "sha256:8647c2151f59cf853459df9332cb059101435eebb8ca1cff9d76c11c69c13983"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"path": "std/ai-data-workflow/axioms.md",
|
|
104
|
+
"contentDigest": "sha256:c23e012389ed030340ac450730cdc454f21ad8d9f39a9483ba2e7bba546cdd56"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"path": "std/behavior-tree/axioms.md",
|
|
108
|
+
"contentDigest": "sha256:6a6dc50bdb1f90ebe9d1785296bcc8c9609c0e35451975b4e67ce4697f2e69b8"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"path": "std/bp-ctrl-flow/axioms.md",
|
|
112
|
+
"contentDigest": "sha256:dc03741e8f2ba852802ca70d6834ab3b9bc063da87437871981194525ec8fc34"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"path": "std/eager-data-flow/axioms.md",
|
|
116
|
+
"contentDigest": "sha256:0997f5083f896a2d7973c0621fdc961882c1a28cc7080c59c479705bdea83767"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"path": "std/instant-ctrl-flow/axioms.md",
|
|
120
|
+
"contentDigest": "sha256:2f6f5157d24acd2f48ab773f794a044bf760f330bb6be1be7a477e3152beded6"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"path": "std/work-ctrl-flow/axioms.md",
|
|
124
|
+
"contentDigest": "sha256:5441b7d2fbf71376238a989da3d5b037a61b10b324838fd2c81a63e73fbec908"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# depa-flows DSL Bundle 规范
|
|
2
|
+
|
|
3
|
+
> 本目录是 depa-flows 流定义 DSL 的权威规范。XNL definition 是可持久化语义真源;代码、编译计划、运行快照和编辑布局都不得反向成为第二份定义。
|
|
4
|
+
|
|
5
|
+
## 语言与产品
|
|
6
|
+
|
|
7
|
+
CtrlFlow 是一套共享的 **statements 语法、canonical AST 和编辑投影**,不形成可独立加载的 definition unit。公开控制流产品只有:
|
|
8
|
+
|
|
9
|
+
- `InstantCtrlFlow`:一次即时执行,不允许持久挂起。
|
|
10
|
+
- `WorkCtrlFlow`:可挂起、快照、恢复和记录已发生决策。
|
|
11
|
+
- `BPCtrlFlow`:在 WorkCtrlFlow 生命周期上增加 TaskSpace 与人工任务事实。
|
|
12
|
+
- `AICtrlWorkflow`:在 WorkCtrlFlow 生命周期上增加 AI runtime context、messages/materials 与 embedded effects。
|
|
13
|
+
|
|
14
|
+
三个产品根的 `[]` 都直接承载有序 CtrlFlow statements。列表顺序本身就是顺序语义,不需要根包装:
|
|
15
|
+
|
|
16
|
+
```xnl
|
|
17
|
+
<InstantCtrlFlow #depa.flows.demo.PriceQuote apiVersion="depa.flows/v1" version="1.0.0" [
|
|
18
|
+
<Run #load-quote {
|
|
19
|
+
src = "vfs://./flow-code/quote.ts#loadQuote"
|
|
20
|
+
}>
|
|
21
|
+
<If #route (
|
|
22
|
+
<Branches [
|
|
23
|
+
<Branch #accepted {
|
|
24
|
+
when = "vfs://./flow-code/quote.ts#isAccepted"
|
|
25
|
+
} [
|
|
26
|
+
<Return #accepted-result {
|
|
27
|
+
src = "vfs://./flow-code/quote.ts#acceptedResult"
|
|
28
|
+
}>
|
|
29
|
+
]>
|
|
30
|
+
<Otherwise [
|
|
31
|
+
<Return #rejected-result {
|
|
32
|
+
src = "vfs://./flow-code/quote.ts#rejectedResult"
|
|
33
|
+
}>
|
|
34
|
+
]>
|
|
35
|
+
]>
|
|
36
|
+
)>
|
|
37
|
+
]>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`EagerDataFlow` 是另一种公开执行产品,根 `[]` 直接承载一次调用内主动求值的 DAG nodes;它不使用 CtrlFlow statements 或其内部计划,也不是长生命周期的 lazy signal DataGraph。`AIDataWorkflow` 在 EagerDataFlow authoring plan 之上增加可恢复 RunGraph、patch/generation/invalidation 与 run-local semantic reuse 状态。
|
|
41
|
+
|
|
42
|
+
## 产品与制品矩阵
|
|
43
|
+
|
|
44
|
+
| 产品 | definition 根 | 目录入口 | 根 `[]` | 根 `()` | 跨 unit scheme |
|
|
45
|
+
|---|---|---|---|---|---|
|
|
46
|
+
| InstantCtrlFlow | `<InstantCtrlFlow>` | `manifest.xnl` | 有序 CtrlFlow statements | 必需唯一 `FlowContract`,其余可选 | `instant-ctrl-flow://<FQN>` |
|
|
47
|
+
| WorkCtrlFlow | `<WorkCtrlFlow>` | `manifest.xnl` | 有序 CtrlFlow statements | 必需唯一 `FlowContract`,其余可选 | `work-ctrl-flow://<FQN>` |
|
|
48
|
+
| BPCtrlFlow | `<BPCtrlFlow>` | `manifest.xnl` | 有序 CtrlFlow statements | 必需唯一 `FlowContract`,其余可选 | `bp-ctrl-flow://<FQN>` |
|
|
49
|
+
| EagerDataFlow | `<EagerDataFlow>` | `manifest.xnl` | DAG nodes | `FlowContract` 与可选 `FlowAuthoring` | `eager-data-flow://<FQN>` |
|
|
50
|
+
| AICtrlWorkflow | `<AICtrlWorkflow>` | `manifest.xnl` | 有序 CtrlFlow statements | `FlowContract` 与 AI workflow resource refs | `resource://<FQN>` |
|
|
51
|
+
| AIDataWorkflow | `<AIDataWorkflow>` | `manifest.xnl` | DAG nodes | `FlowContract` 与 AI workflow resource refs | `resource://<FQN>` |
|
|
52
|
+
|
|
53
|
+
单文件 definition 可使用任意描述性 `.xnl` 文件名;目录 bundle 的入口一律为 `manifest.xnl`。域 facet 的文件名保留点号(例如 `state.def.xnl`、`task.space.xnl`),对应 URI scheme 使用单数 kebab-case(例如 `state-def://`、`task-space://`)。所有产品都遵守 metadata、`{}`、`()`、`[]` 四段职责与 `output = fn(runtime, input, config)` 动态代码协议。
|
|
54
|
+
|
|
55
|
+
## 三层结构
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
L1 foundation/ XNL 分段、命名/引用、DEPA 动态代码协议
|
|
59
|
+
↑
|
|
60
|
+
L2 std/behavior-tree/ 内部 BehaviorTreePlan 投影公理
|
|
61
|
+
L2 std/instant-ctrl-flow/ InstantCtrlFlow 生命周期 profile
|
|
62
|
+
L2 std/work-ctrl-flow/ WorkCtrlFlow 生命周期 profile
|
|
63
|
+
L2 std/bp-ctrl-flow/ BPCtrlFlow 生命周期 profile
|
|
64
|
+
L2 std/eager-data-flow/ EagerDataFlow DAG 执行公理
|
|
65
|
+
L2 std/ai-ctrl-workflow/ AICtrlWorkflow 生命周期 profile
|
|
66
|
+
L2 std/ai-data-workflow/ AIDataWorkflow DAG + RunGraph 公理
|
|
67
|
+
↑
|
|
68
|
+
L3 spec/flow-core/ 公共 CtrlFlow 文件、statement、引用与代码协议
|
|
69
|
+
L3 spec/<profile>/ 各产品 capability 与扩展节点
|
|
70
|
+
L3 spec/eager-data-flow/ EagerDataFlow contract、node、port 与 subflow
|
|
71
|
+
L3 spec/ai-workflow/ Halfcode-backed resource records 与 AI workflow domain projection
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
遇到未明示的写法,先按 L1 分段与引用公理推导,再由 flow-core 和对应 profile 收窄;不得从实现细节或旧 bundle 反推新语法。
|
|
75
|
+
|
|
76
|
+
## 阅读顺序
|
|
77
|
+
|
|
78
|
+
| 层 | 文件 | 回答的问题 |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| L1 | [foundation/syntax-axioms.md](foundation/syntax-axioms.md) | `{}`、`()`、`[]` 分别承载什么。 |
|
|
81
|
+
| L1 | [foundation/naming-axioms.md](foundation/naming-axioms.md) | 文件、FQN、URI 和 code ref 怎么命名。 |
|
|
82
|
+
| L1 | [foundation/depa-axioms.md](foundation/depa-axioms.md) | 动态代码的四边界与函数协议。 |
|
|
83
|
+
| L2 | [std/behavior-tree/axioms.md](std/behavior-tree/axioms.md) | authoring AST 如何投影为内部执行计划。 |
|
|
84
|
+
| L2 | [std/instant-ctrl-flow/axioms.md](std/instant-ctrl-flow/axioms.md) | InstantCtrlFlow 的生命周期限制。 |
|
|
85
|
+
| L2 | [std/work-ctrl-flow/axioms.md](std/work-ctrl-flow/axioms.md) | WorkCtrlFlow 的挂起、快照与恢复。 |
|
|
86
|
+
| L2 | [std/bp-ctrl-flow/axioms.md](std/bp-ctrl-flow/axioms.md) | BPCtrlFlow 的 TaskSpace 与业务结果。 |
|
|
87
|
+
| L2 | [std/eager-data-flow/axioms.md](std/eager-data-flow/axioms.md) | EagerDataFlow 的 eager DAG、并发 ready scheduling、错误与 lazy graph 边界。 |
|
|
88
|
+
| L2 | [std/ai-ctrl-workflow/axioms.md](std/ai-ctrl-workflow/axioms.md) | AICtrlWorkflow 的 WorkCtrlFlow substrate、runtime context 与 effect 边界。 |
|
|
89
|
+
| L2 | [std/ai-data-workflow/axioms.md](std/ai-data-workflow/axioms.md) | AIDataWorkflow 的 EagerDataFlow substrate、RunGraph 与 semantic reuse。 |
|
|
90
|
+
| L3 | [spec/flow-core/nodes.md](spec/flow-core/nodes.md) | 公共 statements 的字段和完整示例。 |
|
|
91
|
+
| L3 | [spec/flow-core/orchestration.md](spec/flow-core/orchestration.md) | 公共语义原语、产品 capability 与 FlowContract。 |
|
|
92
|
+
| L3 | [spec/flow-core/files.md](spec/flow-core/files.md) | 单文件和目录 bundle 怎么组织。 |
|
|
93
|
+
| L3 | [spec/flow-core/refs.md](spec/flow-core/refs.md) | code ref 和 bundle 内引用怎么解析。 |
|
|
94
|
+
| L3 | [spec/flow-core/domains.md](spec/flow-core/domains.md) | 哪些事实是定义、派生物或运行态。 |
|
|
95
|
+
| L3 | [spec/instant-ctrl-flow/nodes.md](spec/instant-ctrl-flow/nodes.md) · [spec/instant-ctrl-flow/domains.md](spec/instant-ctrl-flow/domains.md) | InstantCtrlFlow statements 与 capability。 |
|
|
96
|
+
| L3 | [spec/work-ctrl-flow/nodes.md](spec/work-ctrl-flow/nodes.md) · [spec/work-ctrl-flow/domains.md](spec/work-ctrl-flow/domains.md) | WorkCtrlFlow statements、恢复与持久事实。 |
|
|
97
|
+
| L3 | [spec/bp-ctrl-flow/nodes.md](spec/bp-ctrl-flow/nodes.md) · [spec/bp-ctrl-flow/domains.md](spec/bp-ctrl-flow/domains.md) | BPCtrlFlow statements、TaskSpace 与事实 owner。 |
|
|
98
|
+
| L3 | [spec/eager-data-flow/nodes.md](spec/eager-data-flow/nodes.md) · [spec/eager-data-flow/domains.md](spec/eager-data-flow/domains.md) · [spec/eager-data-flow/files.md](spec/eager-data-flow/files.md) · [spec/eager-data-flow/refs.md](spec/eager-data-flow/refs.md) | EagerDataFlow 根、FlowContract、五种节点、端口、waitFor 与 subflow。 |
|
|
99
|
+
| L3 | [spec/ai-workflow/resources.md](spec/ai-workflow/resources.md) | Halfcode resource authority、App/Agent/Material projection、typed relations 与 run resource freeze。 |
|
|
100
|
+
| L3 | [spec/ai-workflow/ctrl-workflow.md](spec/ai-workflow/ctrl-workflow.md) | AICtrlWorkflow root、messages/materials、state projection 与 effects。 |
|
|
101
|
+
| L3 | [spec/ai-workflow/data-workflow.md](spec/ai-workflow/data-workflow.md) | AIDataWorkflow root、RunGraph、GraphPatch、invalidation 与 reuse。 |
|
|
102
|
+
|
|
103
|
+
## 公共语义速查
|
|
104
|
+
|
|
105
|
+
- `[]` 是有序 statements;根、分支体、循环体和 fallback strategy 都遵守同一规则。
|
|
106
|
+
- `If` 的 `()` 中有且只有一个 `Branches` 子域;`Branches[]` 保存有序 `Branch` 和可选的末尾 `Otherwise`。
|
|
107
|
+
- `Branch.when` 与 `Until.when` 是 `vfs://...#Export` predicate code refs,不是在 XNL 中内嵌的表达式。
|
|
108
|
+
- `Fallback[]` 按序尝试策略,选择第一个没有技术失败的策略;业务结果始终是数据。
|
|
109
|
+
- `Run` 调用代码,其 output 直接成为下一条 statement 的 input;`Return` 立即终止当前 flow 并产生公开 output。
|
|
110
|
+
- 所有动态代码遵守 `output = fn(runtime, input, config)`;predicate 只是 output 被约束为 boolean 的同一协议。
|
|
111
|
+
- `EagerDataFlow` 的 `flow-port://` 是 data edge,`flow-node://` 是 completion edge;两者共同参与 DAG 校验,所有 ready nodes 可并发调度;`SubFlowNode.flow` 只使用 `eager-data-flow://<FQN>`。
|
|
112
|
+
- `AICtrlWorkflow` 复用 WorkCtrlFlow statements,可挂起/恢复;AI runtime context、state store 和 embedded effects 由 wrapper 注入。
|
|
113
|
+
- `AIDataWorkflow` 复用 EagerDataFlow nodes;definition 不保存运行结果,RunGraph 保存 patch/generation/invalidation/reuse 运行态。
|
|
114
|
+
|
|
115
|
+
## 事实源
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
XNL Flow definition
|
|
119
|
+
-> canonical FlowSpec / CtrlFlow AST
|
|
120
|
+
-> internal BehaviorTreePlan
|
|
121
|
+
-> profile engine
|
|
122
|
+
|
|
123
|
+
XNL EagerDataFlow definition
|
|
124
|
+
-> serializable DAG plan (dataEdges + waitForEdges + subflowEdges)
|
|
125
|
+
-> eager invocation scheduler
|
|
126
|
+
|
|
127
|
+
XNL AICtrlWorkflow definition
|
|
128
|
+
-> WorkCtrlFlow-backed definition binding
|
|
129
|
+
-> workflow snapshot + AI run record projection
|
|
130
|
+
|
|
131
|
+
XNL AIDataWorkflow definition
|
|
132
|
+
-> EagerDataFlow-backed definition binding
|
|
133
|
+
-> AI RunGraph state (patches + generations + invalidations + reuse records)
|
|
134
|
+
|
|
135
|
+
XNL ResourcePackage (Halfcode authority)
|
|
136
|
+
-> ResourceTree / EffectiveResourceRegistry
|
|
137
|
+
-> AIWorkflowAppBundleProjection / AIWorkflowAgentResourceProjection (depa workflow domain)
|
|
138
|
+
-> ResourceDependencySnapshot + run resource semantic fingerprint
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
- XNL definition:唯一 authoring 真源。
|
|
142
|
+
- CtrlFlow AST:解析后的规范内存投影,不形成可独立加载的 definition。
|
|
143
|
+
- BehaviorTreePlan:编译器可重建的内部执行计划,不得持久化为 authoring definition。
|
|
144
|
+
- WorkCtrlFlow snapshot:某个运行实例的生命周期状态,不得回写 definition。
|
|
145
|
+
- TaskSpace store:人工任务事实源;业务结果作为 data 进入后续 predicate。
|
|
146
|
+
- FlowAuthoring:布局与 viewport 真源,不复制 statement topology 或配置。
|
|
147
|
+
- AI workflow runtime roots:运行期注入事实,不属于 bundle authoring identity。
|
|
148
|
+
- ResourcePackage、Catalog、KindDefinition、resource containment 与 layer composition:Halfcode 事实,不由 depa-flows 重定义。
|
|
149
|
+
- AIWorkflowAppBundleProjection:从 Halfcode ResourceRecord 重建的 workflow domain view,不是第二份 catalog。
|
|
150
|
+
- AIWorkflowAgentResourceProjection:从固定 typed relations 重建的 Agent/Material domain view,不是第二份 registry。
|
|
151
|
+
- Run resource freeze receipt:完整 Halfcode snapshot proof 与 selected-resource semantic fingerprint 的不可变组合,不拥有 actor/session runtime。
|
|
152
|
+
- AIDataWorkflow RunGraph:某个 run 的可恢复状态,不得回写 definition root。
|
|
153
|
+
|
|
154
|
+
## Removed Authoring Syntax
|
|
155
|
+
|
|
156
|
+
以下旧 authoring 入口被明确拒绝,不存在 alias 或兼容解析:
|
|
157
|
+
|
|
158
|
+
- `Tree` 根或 `tree.xnl` 结构入口。
|
|
159
|
+
- 公开 `Sequence`、`Selector`、`Condition` 控制节点。
|
|
160
|
+
- `action.types` 类型目录与点分 action tag 注册机制。
|
|
161
|
+
- 可执行 `CtrlFlow` 根;它现在只是共享语法/AST 的名称。
|
|
162
|
+
- 旧 `DataFlow` 根;数据 DAG 的唯一公开根是 `EagerDataFlow`。
|
|
163
|
+
|
|
164
|
+
内部 BehaviorTreePlan 可以使用与行为树实现相符的节点 kind,但这些 kind 不属于 XNL authoring surface。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# L1 元公理 · DEPA 封装
|
|
2
|
+
|
|
3
|
+
> 与领域无关的封装范式,源自 DEPA 理论。任何 DSL 描述"一段被封装的逻辑"时都遵守。编号 `M-D*`(Meta-DEPA)。
|
|
4
|
+
> **L1 只定原则**;四边界具体绑定到哪些节点、type 词汇如何落地,由领域层(L2)定映射。
|
|
5
|
+
|
|
6
|
+
## M-D1 · 封装必有四边界
|
|
7
|
+
|
|
8
|
+
只要是封装模式,在 core logic 之外**必有 input / output / config / runtime 四个概念**;缺少任一个,职责就会混杂、软件逐步失控。核心公式:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
output = fn(runtime, input, config)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
- `runtime` — 长生命周期依赖、共享/跨步骤状态、副作用契约;**显式注入**,不靠隐式全局。
|
|
15
|
+
- `input` — 单次调用的请求载荷。
|
|
16
|
+
- `config` — 单次调用的静态配置(枚举标识 + 静态策略),不放函数对象、不重复 runtime。
|
|
17
|
+
- `fn` — 纯逻辑,依赖全部来自三个参数。
|
|
18
|
+
|
|
19
|
+
DSL 在描述任何封装单元时,都应能把这四个概念**分别指认出来**,而不是糊成一个大对象。
|
|
20
|
+
|
|
21
|
+
## M-D2 · Adapter 是边界间的纯函数转换
|
|
22
|
+
|
|
23
|
+
一段封装从外层边界进、到 core、再回外层,是一条处理器链:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
outer{runtime·input·config} → derived → inner{runtime·input·config} → core_logic → inner output → outer output
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
链上每个处理器是一个 **Adapter**——一个 `run(runtime, input, config) -> output` 的纯函数转换。Adapter 的 `type` 取自这条链的**封闭词汇表**:`derived | runtime | input | config | core | output`。不允许自由命名的"阶段/插槽"——那会让四边界退化成任意管线。
|
|
30
|
+
|
|
31
|
+
Adapter 无独立身份:它的身份 = **挂载点 + 边界 type**。复用的单位是脚本文件(M-D3),不是一个被注册的"adapter 对象"。不需要转换的边界用显式 identity,不压扁阶段概念。
|
|
32
|
+
|
|
33
|
+
## M-D3 · 可执行逻辑经引用挂接,声明层禁函数
|
|
34
|
+
|
|
35
|
+
canonical DSL 是纯声明式:**禁止函数、闭包、回调、构造器**出现在 XNL 里。一切可执行逻辑(Adapter 脚本、处理器实现)以**外部脚本文件**存在,经 `src="vfs://…"` 引用挂接(M-N4 物理寻址)。加载器只解析、校验引用,**不执行**脚本;执行属于 runtime 层。
|
|
36
|
+
|
|
37
|
+
推论:DSL 里出现的永远是"契约描述 + 对实现的引用",从不是实现本身。这保证制品可序列化、可 diff、可静态校验。
|
|
38
|
+
|
|
39
|
+
## M-D4 · seed 是启动快照,不是活状态
|
|
40
|
+
|
|
41
|
+
初始数据(`X.seed`,见 M-N3)只作为**启动 checkpoint**,只读。运行期的活状态由 runtime owner 持有、经事件/命令更新——绝不把 live state 写回 seed。这条把"初值声明"与"运行时状态"两个事实源彻底分开。
|