@sixb/core 0.1.17 → 0.1.19
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/README.md +7 -6
- package/dist/actions/commit-edits.d.ts +7 -19
- package/dist/actions/commit-edits.d.ts.map +1 -1
- package/dist/actions/errors.d.ts +0 -3
- package/dist/actions/errors.d.ts.map +1 -1
- package/dist/actions/execution.d.ts +10 -3
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.d.ts +6 -9
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +56 -52
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +1 -1
- package/dist/actions/request.d.ts +14 -25
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run/context.d.ts +40 -0
- package/dist/actions/run/context.d.ts.map +1 -0
- package/dist/actions/run/edits-commit.d.ts +31 -0
- package/dist/actions/run/edits-commit.d.ts.map +1 -0
- package/dist/actions/run/effects.d.ts +23 -0
- package/dist/actions/run/effects.d.ts.map +1 -0
- package/dist/actions/run/execute.d.ts +30 -0
- package/dist/actions/run/execute.d.ts.map +1 -0
- package/dist/actions/run/executor.d.ts +95 -0
- package/dist/actions/run/executor.d.ts.map +1 -0
- package/dist/actions/run/normalize.d.ts +36 -0
- package/dist/actions/run/normalize.d.ts.map +1 -0
- package/dist/actions/run/phase-types.d.ts +18 -0
- package/dist/actions/run/phase-types.d.ts.map +1 -0
- package/dist/actions/run/phases.d.ts +20 -0
- package/dist/actions/run/phases.d.ts.map +1 -0
- package/dist/actions/run/run-action.d.ts +25 -0
- package/dist/actions/run/run-action.d.ts.map +1 -0
- package/dist/actions/run/signals.d.ts +67 -0
- package/dist/actions/run/signals.d.ts.map +1 -0
- package/dist/actions/run/state.d.ts +47 -0
- package/dist/actions/run/state.d.ts.map +1 -0
- package/dist/actions/run/types.d.ts +54 -0
- package/dist/actions/run/types.d.ts.map +1 -0
- package/dist/actions/run/writeback.d.ts +17 -0
- package/dist/actions/run/writeback.d.ts.map +1 -0
- package/dist/actions/run-authorization.d.ts +1 -1
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/actions/run-persistence.d.ts +53 -0
- package/dist/actions/run-persistence.d.ts.map +1 -0
- package/dist/actions/types/context.d.ts +10 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -59
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +12 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/index.js +6 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +16 -4
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +285 -77
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-t9shqx3w.js → chunk-1f7wpmyp.js} +143 -7
- package/dist/chunk-1f7wpmyp.js.map +14 -0
- package/dist/{chunk-jjrn5v0p.js → chunk-1k89ecfr.js} +1 -1
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
- package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
- package/dist/{chunk-svabwqdq.js → chunk-3gnrh4ve.js} +44 -420
- package/dist/{chunk-svabwqdq.js.map → chunk-3gnrh4ve.js.map} +9 -13
- package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
- package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
- package/dist/{chunk-pja9jfz6.js → chunk-4tcx876c.js} +126 -64
- package/dist/chunk-4tcx876c.js.map +19 -0
- package/dist/{chunk-vre348sb.js → chunk-52bk93x8.js} +2 -2
- package/dist/{chunk-4gmng3vf.js → chunk-5e43w60z.js} +2 -2
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-33saed7g.js → chunk-7kg3k1m9.js} +1 -1
- package/dist/{chunk-7ecp4v7a.js → chunk-7mbzgd9m.js} +10 -4
- package/dist/{chunk-7ecp4v7a.js.map → chunk-7mbzgd9m.js.map} +3 -3
- package/dist/{chunk-b9affek3.js → chunk-7n440zgt.js} +30 -30
- package/dist/{chunk-b9affek3.js.map → chunk-7n440zgt.js.map} +4 -4
- package/dist/{chunk-kkqwzy6h.js → chunk-7t429e3f.js} +1 -1
- package/dist/{chunk-xcy5ddha.js → chunk-80mc0971.js} +356 -301
- package/dist/chunk-80mc0971.js.map +15 -0
- package/dist/{chunk-gf7yht60.js → chunk-85yvv5n0.js} +27 -10
- package/dist/chunk-85yvv5n0.js.map +12 -0
- package/dist/{chunk-6fsr7y93.js → chunk-8mx7qw3y.js} +14 -13
- package/dist/{chunk-6fsr7y93.js.map → chunk-8mx7qw3y.js.map} +4 -4
- package/dist/{chunk-kpx7jrmn.js → chunk-91mg3nj9.js} +59 -59
- package/dist/{chunk-kpx7jrmn.js.map → chunk-91mg3nj9.js.map} +5 -5
- package/dist/{chunk-2am3db31.js → chunk-9gyp8hg1.js} +2 -2
- package/dist/{chunk-ewqa58h9.js → chunk-9k93ah50.js} +4 -4
- package/dist/{chunk-ewqa58h9.js.map → chunk-9k93ah50.js.map} +1 -1
- package/dist/{chunk-4wn7bxxa.js → chunk-9ybhtmg4.js} +1 -1
- package/dist/{chunk-fc5zfxy1.js → chunk-a40ad1ft.js} +5 -13
- package/dist/chunk-a40ad1ft.js.map +10 -0
- package/dist/{chunk-dam456ve.js → chunk-aff7cyea.js} +431 -70
- package/dist/{chunk-dam456ve.js.map → chunk-aff7cyea.js.map} +10 -7
- package/dist/{chunk-y2aq6ag9.js → chunk-b38szspf.js} +5 -14
- package/dist/chunk-b38szspf.js.map +11 -0
- package/dist/{chunk-r2y23egw.js → chunk-bkpke1sg.js} +1 -10
- package/dist/chunk-bkpke1sg.js.map +10 -0
- package/dist/{chunk-xyvy73tj.js → chunk-bpgy64fw.js} +8 -3
- package/dist/chunk-bpgy64fw.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-5thzcb8g.js → chunk-c85m1hyj.js} +2 -2
- package/dist/{chunk-e67ynxcr.js → chunk-d2ync1v3.js} +5 -5
- package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/chunk-ey3pyej1.js +8807 -0
- package/dist/chunk-ey3pyej1.js.map +106 -0
- package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
- package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
- package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/{chunk-rpxz486p.js → chunk-hvsb78a1.js} +24 -8
- package/dist/{chunk-rpxz486p.js.map → chunk-hvsb78a1.js.map} +3 -3
- package/dist/{chunk-5yd8cchh.js → chunk-j2bp5ryw.js} +55 -246
- package/dist/{chunk-5yd8cchh.js.map → chunk-j2bp5ryw.js.map} +4 -4
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-w9yycd3t.js → chunk-kg5j6fct.js} +4 -8
- package/dist/{chunk-w9yycd3t.js.map → chunk-kg5j6fct.js.map} +3 -3
- package/dist/{chunk-vp3z1ckh.js → chunk-kyzq4wy9.js} +7 -7
- package/dist/{chunk-wr8qp979.js → chunk-m427qgq0.js} +9 -5
- package/dist/{chunk-wr8qp979.js.map → chunk-m427qgq0.js.map} +4 -3
- package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
- package/dist/{chunk-e1c18xjx.js → chunk-nq6gpjt7.js} +4 -45
- package/dist/{chunk-e1c18xjx.js.map → chunk-nq6gpjt7.js.map} +5 -5
- package/dist/{chunk-a7er86jd.js → chunk-nre82s12.js} +1 -1
- package/dist/{chunk-1hqwggsn.js → chunk-nzapm6p0.js} +1 -2
- package/dist/chunk-nzapm6p0.js.map +12 -0
- package/dist/{chunk-wt4szfec.js → chunk-pbcbn83d.js} +4 -4
- package/dist/{chunk-wt4szfec.js.map → chunk-pbcbn83d.js.map} +1 -1
- package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +2 -2
- package/dist/{chunk-f1xh7a32.js → chunk-q1vkr2ys.js} +4 -4
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-23xs4qp9.js → chunk-rhg02hxq.js} +4 -4
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-aq39q04r.js → chunk-s16apyk9.js} +104 -18
- package/dist/chunk-s16apyk9.js.map +16 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-k4g51s47.js → chunk-t6vq7bff.js} +5 -5
- package/dist/{chunk-sk0hcjsz.js → chunk-tjb1mk5t.js} +3 -3
- package/dist/{chunk-cnb5kv05.js → chunk-tpn40322.js} +23 -8
- package/dist/chunk-tpn40322.js.map +19 -0
- package/dist/{chunk-rx7h5fdx.js → chunk-v9xd5wzd.js} +1 -1
- package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
- package/dist/chunk-wwdfe68s.js +128 -0
- package/dist/chunk-wwdfe68s.js.map +11 -0
- package/dist/{chunk-jnfxmr3f.js → chunk-wz0xs816.js} +6 -6
- package/dist/{chunk-jnfxmr3f.js.map → chunk-wz0xs816.js.map} +1 -1
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/chunk-y0c4e6ex.js +16 -0
- package/dist/chunk-y0c4e6ex.js.map +10 -0
- package/dist/{chunk-5be2ath4.js → chunk-y7rqfrgg.js} +20 -138
- package/dist/{chunk-5be2ath4.js.map → chunk-y7rqfrgg.js.map} +8 -9
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- package/dist/{chunk-dfm066qg.js → chunk-yxd3nnqt.js} +2 -29
- package/dist/chunk-yxd3nnqt.js.map +11 -0
- package/dist/{chunk-70jmg2zx.js → chunk-yzwja0mj.js} +4 -19
- package/dist/{chunk-70jmg2zx.js.map → chunk-yzwja0mj.js.map} +3 -3
- package/dist/{chunk-fggq3d9k.js → chunk-zrmy8zvw.js} +66 -47
- package/dist/{chunk-fggq3d9k.js.map → chunk-zrmy8zvw.js.map} +4 -4
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.d.ts.map +1 -1
- package/dist/deploy/internal.js +10 -8
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts +1 -2
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +6 -5
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/validation.d.ts.map +1 -1
- package/dist/edits/index.js +3 -5
- package/dist/edits/index.js.map +1 -1
- package/dist/edits/properties.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/error-reporting/types.d.ts +2 -9
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/definitions.d.ts +0 -5
- package/dist/events/definitions.d.ts.map +1 -1
- package/dist/events/execution.d.ts +2 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +6 -8
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.d.ts +0 -1
- package/dist/events/scope.d.ts.map +1 -1
- package/dist/events/scope.js +1 -1
- package/dist/events/selectors/builder.d.ts +1 -8
- package/dist/events/selectors/builder.d.ts.map +1 -1
- package/dist/events/selectors/index.d.ts +2 -2
- package/dist/events/selectors/index.d.ts.map +1 -1
- package/dist/events/selectors/index.js +2 -2
- package/dist/events/selectors/predicate.d.ts.map +1 -1
- package/dist/events/selectors/types.d.ts +2 -33
- package/dist/events/selectors/types.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +1 -12
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +50 -48
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +6 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +60 -88
- package/dist/execution/primitive.js.map +3 -4
- package/dist/execution/request.js +46 -46
- package/dist/execution/request.js.map +1 -1
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -124
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +19 -6
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.js +35 -32
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/catalog.d.ts +1 -1
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +26 -23
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/objects/action/errors.d.ts +0 -9
- package/dist/objects/action/errors.d.ts.map +1 -1
- package/dist/objects/action/index.d.ts +3 -3
- package/dist/objects/action/index.d.ts.map +1 -1
- package/dist/objects/action/request.d.ts +2 -8
- package/dist/objects/action/request.d.ts.map +1 -1
- package/dist/objects/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -3
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +49 -30
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +34 -31
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/service/index.d.ts +0 -1
- package/dist/objects/service/index.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +5 -0
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +34 -31
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +27 -24
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +0 -7
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +13 -2
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +30 -28
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +46 -39
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- package/dist/schedules/builders.d.ts.map +1 -1
- package/dist/schedules/index.js +3 -3
- package/dist/schedules/runtime.d.ts.map +1 -1
- package/dist/schedules/validation.d.ts +0 -1
- package/dist/schedules/validation.d.ts.map +1 -1
- package/dist/security/builders.d.ts +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/every.d.ts +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -21
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/idempotency.d.ts +3 -4
- package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
- package/dist/storage/action-runs/in-memory.d.ts +2 -9
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/index.d.ts +1 -3
- package/dist/storage/action-runs/index.d.ts.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/record.d.ts +20 -0
- package/dist/storage/action-runs/record.d.ts.map +1 -0
- package/dist/storage/action-runs/types.d.ts +39 -68
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +12 -9
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/index.d.ts +3 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +36 -34
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +11 -13
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +1 -1
- package/dist/storage/objects/execution-limits.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +7 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +12 -9
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +35 -32
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +34 -4
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts +11 -0
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3213 -2869
- package/dist/testing/index.js.map +7 -6
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +29 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +55 -55
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +1 -7
- package/src/actions/commit-edits.ts +9 -37
- package/src/actions/errors.ts +0 -4
- package/src/actions/execution.ts +10 -10
- package/src/actions/index.ts +5 -24
- package/src/actions/read-facade.ts +2 -1
- package/src/actions/request.ts +157 -295
- package/src/actions/run/context.ts +193 -0
- package/src/actions/run/edits-commit.ts +102 -0
- package/src/actions/run/effects.ts +105 -0
- package/src/actions/run/execute.ts +113 -0
- package/src/actions/run/executor.ts +314 -0
- package/src/actions/run/normalize.ts +142 -0
- package/src/actions/run/phase-types.ts +20 -0
- package/src/actions/run/phases.ts +150 -0
- package/src/actions/run/run-action.ts +170 -0
- package/src/actions/run/signals.ts +118 -0
- package/src/actions/run/state.ts +95 -0
- package/src/actions/run/types.ts +61 -0
- package/src/actions/run/writeback.ts +79 -0
- package/src/actions/run-authorization.ts +1 -1
- package/src/actions/run-persistence.ts +105 -0
- package/src/actions/types/context.ts +10 -0
- package/src/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/event-visibility.ts +0 -12
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/execution.ts +12 -0
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +7 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/deploy/index.ts +0 -1
- package/src/deploy/services.ts +2 -11
- package/src/deploy/types.ts +6 -6
- package/src/deploy/validation.ts +12 -6
- package/src/edits/properties.ts +3 -0
- package/src/error-reporting/types.ts +2 -10
- package/src/errors/catalog.ts +13 -0
- package/src/events/definitions.ts +0 -17
- package/src/events/execution.ts +15 -16
- package/src/events/index.ts +0 -14
- package/src/events/scope.ts +0 -12
- package/src/events/selectors/builder.ts +0 -51
- package/src/events/selectors/index.ts +0 -6
- package/src/events/selectors/predicate.ts +0 -2
- package/src/events/selectors/types.ts +7 -65
- package/src/events/types/index.ts +0 -11
- package/src/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +96 -34
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +28 -21
- package/src/materialization/model.ts +26 -9
- package/src/materializer/README.md +6 -1
- package/src/materializer/edits/commit.ts +42 -32
- package/src/materializer/shared/normalize.ts +25 -14
- package/src/models/catalog.ts +26 -2
- package/src/models/execution/README.md +4 -3
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-recorder.ts +10 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution.ts +6 -2
- package/src/models/language-model.ts +6 -0
- package/src/objects/action/errors.ts +0 -12
- package/src/objects/action/index.ts +3 -3
- package/src/objects/action/request.ts +2 -29
- package/src/objects/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +6 -3
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +43 -36
- package/src/objects/query/validate.ts +133 -14
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +11 -33
- package/src/objects/sdk/object-set.ts +10 -32
- package/src/objects/service/index.ts +0 -1
- package/src/ontology/builders.ts +18 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +5 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/schema.ts +26 -1
- package/src/queues/in-memory.ts +0 -6
- package/src/queues/index.ts +0 -2
- package/src/queues/types.ts +0 -11
- package/src/runtime/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +50 -1
- package/src/runtime/index.ts +3 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/resolve-definitions.ts +28 -2
- package/src/runtime/sixb.ts +1 -1
- package/src/runtime/types.ts +55 -48
- package/src/scheduler/runtime.ts +11 -2
- package/src/schedules/builders.ts +1 -4
- package/src/schedules/runtime.ts +0 -41
- package/src/schedules/validation.ts +2 -16
- package/src/security/builders.ts +49 -5
- package/src/security/every.ts +1 -1
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- package/src/storage/action-runs/idempotency.ts +13 -41
- package/src/storage/action-runs/in-memory.ts +20 -311
- package/src/storage/action-runs/index.ts +1 -16
- package/src/storage/action-runs/record.ts +130 -0
- package/src/storage/action-runs/types.ts +37 -92
- package/src/storage/agents/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/index.ts +2 -9
- package/src/storage/internal.ts +1 -7
- package/src/storage/objects/execution-limits.ts +3 -2
- package/src/storage/objects/types.ts +7 -0
- package/src/storage/types.ts +2 -4
- package/src/testing/action-execution.ts +73 -13
- package/src/testing/action-run-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -1
- package/src/testing/materializer-storage-contract.ts +174 -18
- package/src/testing/queues-contract.ts +0 -18
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- package/dist/actions/run-dispatch.d.ts +0 -25
- package/dist/actions/run-dispatch.d.ts.map +0 -1
- package/dist/actions/worker.d.ts +0 -3
- package/dist/actions/worker.d.ts.map +0 -1
- package/dist/actions/worker.js +0 -321
- package/dist/actions/worker.js.map +0 -11
- package/dist/chunk-10styjgk.js +0 -1572
- package/dist/chunk-10styjgk.js.map +0 -20
- package/dist/chunk-1hqwggsn.js.map +0 -12
- package/dist/chunk-52c5zb0z.js +0 -81
- package/dist/chunk-52c5zb0z.js.map +0 -10
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6wbm6ymz.js +0 -4399
- package/dist/chunk-6wbm6ymz.js.map +0 -48
- package/dist/chunk-85cd7e8c.js +0 -51
- package/dist/chunk-85cd7e8c.js.map +0 -10
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9g6jz9kk.js +0 -592
- package/dist/chunk-9g6jz9kk.js.map +0 -15
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-aq39q04r.js.map +0 -15
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-cnb5kv05.js.map +0 -19
- package/dist/chunk-dfm066qg.js.map +0 -11
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-fc5zfxy1.js.map +0 -11
- package/dist/chunk-gf7yht60.js.map +0 -12
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-pja9jfz6.js.map +0 -19
- package/dist/chunk-r2y23egw.js.map +0 -10
- package/dist/chunk-t9shqx3w.js.map +0 -12
- package/dist/chunk-tjjgy3z4.js +0 -1277
- package/dist/chunk-tjjgy3z4.js.map +0 -35
- package/dist/chunk-xcy5ddha.js.map +0 -15
- package/dist/chunk-xyvy73tj.js.map +0 -12
- package/dist/chunk-y2aq6ag9.js.map +0 -11
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- package/dist/chunk-zvx7h87b.js +0 -12
- package/dist/chunk-zvx7h87b.js.map +0 -10
- package/dist/events/types/actions.d.ts +0 -39
- package/dist/events/types/actions.d.ts.map +0 -1
- package/dist/objects/service/action-service.d.ts +0 -13
- package/dist/objects/service/action-service.d.ts.map +0 -1
- package/src/actions/run-dispatch.ts +0 -282
- package/src/actions/worker.ts +0 -2
- package/src/events/types/actions.ts +0 -42
- package/src/objects/service/action-service.ts +0 -43
- /package/dist/{chunk-jjrn5v0p.js.map → chunk-1k89ecfr.js.map} +0 -0
- /package/dist/{chunk-vre348sb.js.map → chunk-52bk93x8.js.map} +0 -0
- /package/dist/{chunk-4gmng3vf.js.map → chunk-5e43w60z.js.map} +0 -0
- /package/dist/{chunk-33saed7g.js.map → chunk-7kg3k1m9.js.map} +0 -0
- /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
- /package/dist/{chunk-2am3db31.js.map → chunk-9gyp8hg1.js.map} +0 -0
- /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-5thzcb8g.js.map → chunk-c85m1hyj.js.map} +0 -0
- /package/dist/{chunk-e67ynxcr.js.map → chunk-d2ync1v3.js.map} +0 -0
- /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
- /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
- /package/dist/{chunk-vp3z1ckh.js.map → chunk-kyzq4wy9.js.map} +0 -0
- /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-a7er86jd.js.map → chunk-nre82s12.js.map} +0 -0
- /package/dist/{chunk-f1xh7a32.js.map → chunk-q1vkr2ys.js.map} +0 -0
- /package/dist/{chunk-23xs4qp9.js.map → chunk-rhg02hxq.js.map} +0 -0
- /package/dist/{chunk-k4g51s47.js.map → chunk-t6vq7bff.js.map} +0 -0
- /package/dist/{chunk-sk0hcjsz.js.map → chunk-tjb1mk5t.js.map} +0 -0
- /package/dist/{chunk-rx7h5fdx.js.map → chunk-v9xd5wzd.js.map} +0 -0
- /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
|
@@ -1,52 +1,306 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
import {
|
|
3
|
+
assertPredicateShape,
|
|
4
|
+
createPropertyPredicateBuilder,
|
|
5
|
+
createLinkPredicateBuilder,
|
|
6
|
+
allPredicates,
|
|
7
|
+
anyPredicates,
|
|
8
|
+
notPredicate,
|
|
9
|
+
isScheduleDefinition2
|
|
10
|
+
} from "./chunk-nq6gpjt7.js";
|
|
2
11
|
import {
|
|
3
12
|
isActionDefinition2,
|
|
4
|
-
isGroupDefinition,
|
|
5
|
-
isMembershipPolicyDefinition,
|
|
6
|
-
isRoleDefinition,
|
|
7
13
|
ShareDefinitionError2,
|
|
8
14
|
isShareDefinition,
|
|
9
15
|
snapshotShareDefinition
|
|
10
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-3gnrh4ve.js";
|
|
11
17
|
import {
|
|
12
18
|
isProjectionDefinition2
|
|
13
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-y7rqfrgg.js";
|
|
20
|
+
import {
|
|
21
|
+
isMarkingDefinition,
|
|
22
|
+
isGroupDefinition,
|
|
23
|
+
isMembershipPolicyDefinition,
|
|
24
|
+
isRoleDefinition
|
|
25
|
+
} from "./chunk-xt1zt7gv.js";
|
|
26
|
+
import {
|
|
27
|
+
isWorkflowDefinition2
|
|
28
|
+
} from "./chunk-ey3pyej1.js";
|
|
14
29
|
import {
|
|
15
30
|
isDatasetDefinition2
|
|
16
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-rz53yb4v.js";
|
|
17
32
|
import {
|
|
18
33
|
isPipelineDefinition2
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
assertPredicateShape,
|
|
22
|
-
createPropertyPredicateBuilder,
|
|
23
|
-
createLinkPredicateBuilder,
|
|
24
|
-
allPredicates,
|
|
25
|
-
anyPredicates,
|
|
26
|
-
notPredicate,
|
|
27
|
-
isScheduleDefinition2
|
|
28
|
-
} from "./chunk-e1c18xjx.js";
|
|
34
|
+
} from "./chunk-tjb1mk5t.js";
|
|
29
35
|
import {
|
|
30
36
|
isSyncDefinition2
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import {
|
|
33
|
-
isWorkflowDefinition2
|
|
34
|
-
} from "./chunk-6wbm6ymz.js";
|
|
37
|
+
} from "./chunk-rhg02hxq.js";
|
|
35
38
|
import {
|
|
36
39
|
compileShareAccessPlan
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import {
|
|
39
|
-
isConnectorDefinition
|
|
40
|
-
} from "./chunk-9x8dybsb.js";
|
|
40
|
+
} from "./chunk-52bk93x8.js";
|
|
41
41
|
import {
|
|
42
42
|
RuntimeError2
|
|
43
43
|
} from "./chunk-m4ehq95f.js";
|
|
44
|
+
import {
|
|
45
|
+
isConnectorDefinition
|
|
46
|
+
} from "./chunk-9x8dybsb.js";
|
|
44
47
|
|
|
45
|
-
// src/bootstrap/
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
// src/bootstrap/agent-context.ts
|
|
49
|
+
import { lstat, readdir, readFile, stat } from "fs/promises";
|
|
50
|
+
import { basename, join, relative, sep } from "path";
|
|
51
|
+
var PROJECT_INSTRUCTIONS_FILE = "SIXB.md";
|
|
52
|
+
var MAX_PROJECT_INSTRUCTIONS_BYTES = 32 * 1024;
|
|
53
|
+
var MAX_AGENT_FILES_BYTES = 16 * 1024 * 1024;
|
|
54
|
+
var IGNORED_NAMES = new Set(["node_modules", "venv", "__pycache__"]);
|
|
55
|
+
var SKILL_NAME_RE = /^[a-z0-9][a-z0-9._-]*$/;
|
|
56
|
+
var UNQUOTED_COLON_VALUE_RE = /^\s*[\w-]+:\s+[^\s"'|>].*:\s/;
|
|
57
|
+
function isAgentContextPath2(path) {
|
|
58
|
+
const segments = path.split("/");
|
|
59
|
+
if (segments.some(isIgnoredAgentContextName))
|
|
60
|
+
return false;
|
|
61
|
+
if (path === PROJECT_INSTRUCTIONS_FILE || segments[0] === "skills")
|
|
62
|
+
return true;
|
|
63
|
+
if (segments[0] !== "ontology")
|
|
64
|
+
return false;
|
|
65
|
+
return isMarkdown(path) || segments.slice(1, -1).some(isOntologyScriptsDirectory);
|
|
66
|
+
}
|
|
67
|
+
function isIgnoredAgentContextName(name) {
|
|
68
|
+
return name.startsWith(".") || IGNORED_NAMES.has(name);
|
|
69
|
+
}
|
|
70
|
+
function isOntologyScriptsDirectory(name) {
|
|
71
|
+
return name === "scripts";
|
|
72
|
+
}
|
|
73
|
+
async function discoverOntologyFiles(projectRoot) {
|
|
74
|
+
const ontologyDir = join(projectRoot, "ontology");
|
|
75
|
+
const docs = [];
|
|
76
|
+
const scripts = [];
|
|
77
|
+
const budget = createFilesBudget("ontology/");
|
|
78
|
+
async function walk(dir, inScripts) {
|
|
79
|
+
let entries;
|
|
80
|
+
try {
|
|
81
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
82
|
+
} catch (error) {
|
|
83
|
+
if (isNotFound(error))
|
|
84
|
+
return;
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
|
|
88
|
+
if (isIgnoredAgentContextName(entry.name))
|
|
89
|
+
continue;
|
|
90
|
+
const path = join(dir, entry.name);
|
|
91
|
+
const relativePath = toPosixRelative(ontologyDir, path);
|
|
92
|
+
if (entry.isSymbolicLink()) {
|
|
93
|
+
const target = await stat(path).catch(() => {
|
|
94
|
+
return;
|
|
95
|
+
});
|
|
96
|
+
if (inScripts || isMarkdown(entry.name) || target?.isDirectory()) {
|
|
97
|
+
throw new RuntimeError2(`[Sixb] Ontology path 'ontology/${relativePath}' must not be a symlink.`);
|
|
98
|
+
}
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (entry.isDirectory()) {
|
|
102
|
+
await walk(path, inScripts || isOntologyScriptsDirectory(entry.name));
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (!entry.isFile() || !(inScripts || isMarkdown(entry.name)))
|
|
106
|
+
continue;
|
|
107
|
+
const info = await lstat(path);
|
|
108
|
+
budget(info.size);
|
|
109
|
+
if (inScripts) {
|
|
110
|
+
const mode = info.mode & 511;
|
|
111
|
+
scripts.push(Object.freeze({
|
|
112
|
+
path: relativePath,
|
|
113
|
+
contents: await readFile(path),
|
|
114
|
+
...(mode & 73) === 0 ? {} : { mode }
|
|
115
|
+
}));
|
|
116
|
+
} else {
|
|
117
|
+
const contents = decodeUtf8(await readFile(path));
|
|
118
|
+
if (contents === undefined) {
|
|
119
|
+
throw new RuntimeError2(`[Sixb] Ontology doc 'ontology/${relativePath}' must be UTF-8 text.`);
|
|
120
|
+
}
|
|
121
|
+
docs.push(Object.freeze({ path: relativePath, contents }));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
await walk(ontologyDir, false);
|
|
126
|
+
return { docs, scripts };
|
|
127
|
+
}
|
|
128
|
+
async function discoverAgentSkills(projectRoot) {
|
|
129
|
+
const skillsDir = join(projectRoot, "skills");
|
|
130
|
+
let entries;
|
|
131
|
+
try {
|
|
132
|
+
entries = await readdir(skillsDir);
|
|
133
|
+
} catch (error) {
|
|
134
|
+
if (isNotFound(error))
|
|
135
|
+
return [];
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
138
|
+
const skills = [];
|
|
139
|
+
const budget = createFilesBudget("skills/");
|
|
140
|
+
for (const entry of entries.sort((a, b) => a.localeCompare(b))) {
|
|
141
|
+
if (isIgnoredAgentContextName(entry))
|
|
142
|
+
continue;
|
|
143
|
+
const skillDir = join(skillsDir, entry);
|
|
144
|
+
const info = await lstat(skillDir);
|
|
145
|
+
if (info.isSymbolicLink()) {
|
|
146
|
+
throw skillError(projectRoot, skillDir, "Skill directories must not be symlinks.");
|
|
147
|
+
}
|
|
148
|
+
if (!info.isDirectory())
|
|
149
|
+
continue;
|
|
150
|
+
skills.push(await loadAgentSkill(projectRoot, skillDir, budget));
|
|
151
|
+
}
|
|
152
|
+
return skills;
|
|
153
|
+
}
|
|
154
|
+
async function discoverProjectInstructions(projectRoot) {
|
|
155
|
+
const path = join(projectRoot, PROJECT_INSTRUCTIONS_FILE);
|
|
156
|
+
let info;
|
|
157
|
+
try {
|
|
158
|
+
info = await lstat(path);
|
|
159
|
+
} catch (error) {
|
|
160
|
+
if (isNotFound(error))
|
|
161
|
+
return;
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
if (!info.isFile()) {
|
|
165
|
+
throw instructionsError("must be a regular file, not a symlink or a directory.");
|
|
166
|
+
}
|
|
167
|
+
if (info.size > MAX_PROJECT_INSTRUCTIONS_BYTES) {
|
|
168
|
+
throw instructionsError(`is ${info.size.toLocaleString("en-US")} bytes; the limit is ` + `${MAX_PROJECT_INSTRUCTIONS_BYTES.toLocaleString("en-US")}. It is part of every ` + "conversation's prompt: keep it to project-wide guidance and move task-specific " + "instructions into skills/, which the agent reads only when relevant.");
|
|
169
|
+
}
|
|
170
|
+
const instructions = decodeUtf8(await readFile(path));
|
|
171
|
+
if (instructions === undefined)
|
|
172
|
+
throw instructionsError("must be UTF-8 text.");
|
|
173
|
+
if (!instructions.trim()) {
|
|
174
|
+
throw instructionsError("is empty. Write the agent's project instructions or delete the file.");
|
|
175
|
+
}
|
|
176
|
+
return instructions;
|
|
177
|
+
}
|
|
178
|
+
async function loadAgentSkill(projectRoot, skillDir, budget) {
|
|
179
|
+
const files = await collectSkillFiles(projectRoot, skillDir, budget);
|
|
180
|
+
const skillFile = files.find((file) => file.path === "SKILL.md");
|
|
181
|
+
if (!skillFile || typeof skillFile.contents !== "string") {
|
|
182
|
+
throw skillError(projectRoot, skillDir, "Missing required regular SKILL.md.");
|
|
183
|
+
}
|
|
184
|
+
const metadata = parseSkillMetadata(projectRoot, skillDir, skillFile.contents);
|
|
185
|
+
validateSkillMetadata(projectRoot, skillDir, metadata);
|
|
186
|
+
return Object.freeze({
|
|
187
|
+
name: metadata.name,
|
|
188
|
+
description: metadata.description,
|
|
189
|
+
files: Object.freeze(files)
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function validateSkillMetadata(projectRoot, skillDir, metadata) {
|
|
193
|
+
const fail = (message) => skillError(projectRoot, skillDir, message);
|
|
194
|
+
if (!metadata.name?.trim()) {
|
|
195
|
+
throw fail("SKILL.md frontmatter must include a non-empty string name.");
|
|
196
|
+
}
|
|
197
|
+
if (!metadata.description?.trim()) {
|
|
198
|
+
throw fail("SKILL.md frontmatter must include a non-empty string description.");
|
|
199
|
+
}
|
|
200
|
+
if (!SKILL_NAME_RE.test(metadata.name)) {
|
|
201
|
+
throw fail(`Skill name '${metadata.name}' must match ${String(SKILL_NAME_RE)}.`);
|
|
202
|
+
}
|
|
203
|
+
const dirName = basename(skillDir);
|
|
204
|
+
if (metadata.name !== dirName) {
|
|
205
|
+
throw fail(`Skill name '${metadata.name}' must match directory '${dirName}'.`);
|
|
206
|
+
}
|
|
207
|
+
if (metadata.name.startsWith("sixb-")) {
|
|
208
|
+
throw fail(`Skill name '${metadata.name}' uses the reserved 'sixb-' prefix.`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
async function collectSkillFiles(projectRoot, skillDir, budget, currentDir = skillDir) {
|
|
212
|
+
const files = [];
|
|
213
|
+
const entries = await readdir(currentDir);
|
|
214
|
+
for (const entry of entries.sort((a, b) => a.localeCompare(b))) {
|
|
215
|
+
if (isIgnoredAgentContextName(entry))
|
|
216
|
+
continue;
|
|
217
|
+
const path = join(currentDir, entry);
|
|
218
|
+
const info = await lstat(path);
|
|
219
|
+
const relativePath = toPosixRelative(skillDir, path);
|
|
220
|
+
if (info.isSymbolicLink()) {
|
|
221
|
+
throw skillError(projectRoot, skillDir, `Skill file '${relativePath}' must not be a symlink.`);
|
|
222
|
+
}
|
|
223
|
+
if (info.isDirectory()) {
|
|
224
|
+
files.push(...await collectSkillFiles(projectRoot, skillDir, budget, path));
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (!info.isFile())
|
|
228
|
+
continue;
|
|
229
|
+
budget(info.size);
|
|
230
|
+
const mode = info.mode & 511;
|
|
231
|
+
files.push(Object.freeze({
|
|
232
|
+
path: relativePath,
|
|
233
|
+
contents: relativePath === "SKILL.md" ? await readFile(path, "utf-8") : await readFile(path),
|
|
234
|
+
...(mode & 73) === 0 ? {} : { mode }
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
return files;
|
|
238
|
+
}
|
|
239
|
+
function parseSkillMetadata(projectRoot, skillDir, markdown) {
|
|
240
|
+
const fail = (message) => skillError(projectRoot, skillDir, message);
|
|
241
|
+
const lines = markdown.replaceAll(`\r
|
|
242
|
+
`, `
|
|
243
|
+
`).split(`
|
|
244
|
+
`);
|
|
245
|
+
if (lines[0] !== "---") {
|
|
246
|
+
throw fail("SKILL.md must start with YAML frontmatter delimited by ---.");
|
|
247
|
+
}
|
|
248
|
+
const end = lines.findIndex((line, index) => index > 0 && line === "---");
|
|
249
|
+
if (end < 0) {
|
|
250
|
+
throw fail("SKILL.md frontmatter is missing the closing --- delimiter.");
|
|
251
|
+
}
|
|
252
|
+
const frontmatter = lines.slice(1, end);
|
|
253
|
+
let parsed;
|
|
254
|
+
try {
|
|
255
|
+
parsed = Bun.YAML.parse(frontmatter.join(`
|
|
256
|
+
`));
|
|
257
|
+
} catch (error) {
|
|
258
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
259
|
+
const hint = frontmatter.some((line) => UNQUOTED_COLON_VALUE_RE.test(line)) ? ` Quote values that contain ': ', for example description: "Use when: ...".` : "";
|
|
260
|
+
throw fail(`SKILL.md frontmatter is not valid YAML: ${message}.${hint}`);
|
|
261
|
+
}
|
|
262
|
+
if (!isRecord(parsed)) {
|
|
263
|
+
throw fail("SKILL.md frontmatter must be a YAML mapping.");
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
...typeof parsed.name === "string" ? { name: parsed.name.trim() } : {},
|
|
267
|
+
...typeof parsed.description === "string" ? { description: parsed.description.trim() } : {}
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
function createFilesBudget(directory) {
|
|
271
|
+
let total = 0;
|
|
272
|
+
return (size) => {
|
|
273
|
+
total += size;
|
|
274
|
+
if (total > MAX_AGENT_FILES_BYTES) {
|
|
275
|
+
throw new RuntimeError2(`[Sixb] The files under ${directory} exceed ${MAX_AGENT_FILES_BYTES / 1024 / 1024} MB. ` + "Every agent sandbox receives them: keep large assets out of the project, or have a " + "script fetch them when needed.");
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
function isMarkdown(path) {
|
|
280
|
+
return path.toLowerCase().endsWith(".md");
|
|
281
|
+
}
|
|
282
|
+
function decodeUtf8(bytes) {
|
|
283
|
+
try {
|
|
284
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
285
|
+
} catch {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function isRecord(value) {
|
|
290
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
291
|
+
}
|
|
292
|
+
function toPosixRelative(from, to) {
|
|
293
|
+
return relative(from, to).split(sep).join("/");
|
|
294
|
+
}
|
|
295
|
+
function isNotFound(error) {
|
|
296
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
297
|
+
}
|
|
298
|
+
function skillError(projectRoot, skillDir, message) {
|
|
299
|
+
return new RuntimeError2(`[Sixb] Agent Skill '${toPosixRelative(projectRoot, skillDir)}' is invalid: ${message}`);
|
|
300
|
+
}
|
|
301
|
+
function instructionsError(message) {
|
|
302
|
+
return new RuntimeError2(`[Sixb] ${PROJECT_INSTRUCTIONS_FILE} ${message}`);
|
|
303
|
+
}
|
|
50
304
|
|
|
51
305
|
// src/rules/errors.ts
|
|
52
306
|
class RuleError extends Error {
|
|
@@ -58,7 +312,7 @@ class RuleValidationError2 extends RuleError {
|
|
|
58
312
|
}
|
|
59
313
|
|
|
60
314
|
// src/rules/validation.ts
|
|
61
|
-
function
|
|
315
|
+
function isRecord2(value) {
|
|
62
316
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
63
317
|
}
|
|
64
318
|
function assertNonEmptyString(value, field, createError) {
|
|
@@ -70,14 +324,14 @@ function assertRulePredicateShape(value, createError = (message) => new RuleVali
|
|
|
70
324
|
assertPredicateShape(value, { subject: "Rule", createError });
|
|
71
325
|
}
|
|
72
326
|
function assertRuleDefinition(value, createError = (message) => new RuleValidationError2(message)) {
|
|
73
|
-
if (!
|
|
327
|
+
if (!isRecord2(value)) {
|
|
74
328
|
throw createError("Rule definition must be an object.");
|
|
75
329
|
}
|
|
76
330
|
if (value.kind !== "rule") {
|
|
77
331
|
throw createError("Rule definition kind must be 'rule'.");
|
|
78
332
|
}
|
|
79
333
|
assertNonEmptyString(value.id, "Rule id", createError);
|
|
80
|
-
if (!
|
|
334
|
+
if (!isRecord2(value.subject) || value.subject.kind !== "object") {
|
|
81
335
|
throw createError(`Rule '${value.id}' subject must be an object subject.`);
|
|
82
336
|
}
|
|
83
337
|
assertNonEmptyString(value.subject.objectTypeId, `Rule '${value.id}' subject objectTypeId`, createError);
|
|
@@ -219,24 +473,43 @@ function invalid(message) {
|
|
|
219
473
|
return new ShareDefinitionError2(`[Sixb] ${message}`);
|
|
220
474
|
}
|
|
221
475
|
// src/bootstrap/discovery.ts
|
|
476
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
477
|
+
import { readdir as readdir2 } from "fs/promises";
|
|
478
|
+
import { join as join2, relative as relative2, resolve, sep as sep2 } from "path";
|
|
479
|
+
import { pathToFileURL } from "url";
|
|
222
480
|
var moduleExtensions = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"]);
|
|
223
|
-
async function
|
|
224
|
-
const
|
|
481
|
+
async function discoverOntologySources(projectRoot) {
|
|
482
|
+
const loadedModules = await loadFamilyModules(projectRoot, "ontology", ["ontology"]);
|
|
225
483
|
const ontologyDocuments = [];
|
|
226
484
|
const objectTypes = [];
|
|
227
485
|
const valueTypes = [];
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
486
|
+
const modules = [];
|
|
487
|
+
const seen = new Set;
|
|
488
|
+
for (const loaded of loadedModules) {
|
|
489
|
+
const objectTypeIds = [];
|
|
490
|
+
for (const candidate of loaded.exports) {
|
|
491
|
+
const first = !seen.has(candidate);
|
|
492
|
+
seen.add(candidate);
|
|
493
|
+
if (isOntologyDocumentInput(candidate)) {
|
|
494
|
+
objectTypeIds.push(...candidate.objectTypes.map((objectType) => objectType.id));
|
|
495
|
+
if (first)
|
|
496
|
+
ontologyDocuments.push(candidate);
|
|
497
|
+
continue;
|
|
498
|
+
}
|
|
499
|
+
if (isObjectTypeWithPropertyTokens(candidate)) {
|
|
500
|
+
objectTypeIds.push(candidate.id);
|
|
501
|
+
if (first)
|
|
502
|
+
objectTypes.push(candidate);
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
if (isValueType(candidate) && first) {
|
|
506
|
+
valueTypes.push(candidate);
|
|
507
|
+
}
|
|
239
508
|
}
|
|
509
|
+
modules.push({
|
|
510
|
+
path: toPosix(relative2("ontology", loaded.path)),
|
|
511
|
+
objectTypeIds: [...new Set(objectTypeIds)]
|
|
512
|
+
});
|
|
240
513
|
}
|
|
241
514
|
const discoveredSources = [...ontologyDocuments, ...objectTypes];
|
|
242
515
|
if (valueTypes.length > 0) {
|
|
@@ -247,7 +520,7 @@ async function discoverOntologySources2(projectRoot) {
|
|
|
247
520
|
valueTypes
|
|
248
521
|
});
|
|
249
522
|
}
|
|
250
|
-
return discoveredSources;
|
|
523
|
+
return { sources: discoveredSources, modules };
|
|
251
524
|
}
|
|
252
525
|
var bundledProject = new AsyncLocalStorage;
|
|
253
526
|
function withProjectModules2(projectRoot, modules, run) {
|
|
@@ -283,6 +556,11 @@ var definitionDiscoveryRegistry = {
|
|
|
283
556
|
kind: "workflow",
|
|
284
557
|
isDefinition: isWorkflowDefinition2
|
|
285
558
|
},
|
|
559
|
+
markings: {
|
|
560
|
+
directory: ["security", "markings"],
|
|
561
|
+
kind: "marking",
|
|
562
|
+
isDefinition: isMarkingDefinition
|
|
563
|
+
},
|
|
286
564
|
groups: {
|
|
287
565
|
directory: ["security", "groups"],
|
|
288
566
|
kind: "group",
|
|
@@ -315,30 +593,33 @@ async function discoverProjectDefinitions2(projectRoot) {
|
|
|
315
593
|
return Object.fromEntries(entries);
|
|
316
594
|
}
|
|
317
595
|
async function discoverDefinitionFamily(projectRoot, family) {
|
|
318
|
-
const
|
|
319
|
-
|
|
596
|
+
const loadedModules = await loadFamilyModules(projectRoot, family.kind, family.directory);
|
|
597
|
+
const exportedCandidates = new Set(loadedModules.flatMap((loaded) => loaded.exports));
|
|
598
|
+
return [...exportedCandidates].filter(family.isDefinition);
|
|
599
|
+
}
|
|
600
|
+
function listOntologyModuleFiles(projectRoot) {
|
|
601
|
+
return listModuleFiles(join2(projectRoot, "ontology"), isOntologyScriptsDirectory);
|
|
320
602
|
}
|
|
321
603
|
async function listFamilyModules(projectRoot, kind, directory) {
|
|
322
|
-
const paths = await listModuleFiles(
|
|
323
|
-
return paths.map((path) => ({ kind, path:
|
|
604
|
+
const paths = kind === "ontology" ? await listOntologyModuleFiles(projectRoot) : await listModuleFiles(join2(projectRoot, ...directory));
|
|
605
|
+
return paths.map((path) => ({ kind, path: relative2(projectRoot, path) }));
|
|
324
606
|
}
|
|
325
|
-
async function
|
|
607
|
+
async function loadFamilyModules(projectRoot, kind, directory) {
|
|
326
608
|
const project = bundledProject.getStore();
|
|
327
609
|
if (project) {
|
|
328
610
|
if (resolve(projectRoot) !== project.projectRoot) {
|
|
329
611
|
throw new RuntimeError2(`Built project discovery is scoped to '${project.projectRoot}', not '${projectRoot}'. ` + "Run the built entry from the project root and use that root in createSixb().");
|
|
330
612
|
}
|
|
331
|
-
return
|
|
613
|
+
return loadModules(project.modules.filter((module) => module.kind === kind));
|
|
332
614
|
}
|
|
333
615
|
const modules = await listFamilyModules(projectRoot, kind, directory);
|
|
334
|
-
return
|
|
616
|
+
return loadModules(modules.map((module) => ({
|
|
335
617
|
...module,
|
|
336
618
|
load: () => import(pathToFileURL(resolve(projectRoot, module.path)).href)
|
|
337
619
|
})));
|
|
338
620
|
}
|
|
339
|
-
async function
|
|
340
|
-
const
|
|
341
|
-
const seen = new Set;
|
|
621
|
+
async function loadModules(modules) {
|
|
622
|
+
const loaded = [];
|
|
342
623
|
for (const module of modules) {
|
|
343
624
|
let moduleNamespace;
|
|
344
625
|
try {
|
|
@@ -347,11 +628,14 @@ async function loadModuleExports(modules) {
|
|
|
347
628
|
const reason = error instanceof Error ? error.message : String(error);
|
|
348
629
|
throw new RuntimeError2(`Failed to load ${module.kind} module '${module.path}': ${reason}`);
|
|
349
630
|
}
|
|
631
|
+
const exportedCandidates = [];
|
|
632
|
+
const seen = new Set;
|
|
350
633
|
for (const exportedValue of Object.values(moduleNamespace)) {
|
|
351
634
|
collectExportedCandidates(exportedValue, exportedCandidates, seen);
|
|
352
635
|
}
|
|
636
|
+
loaded.push({ path: module.path, exports: exportedCandidates });
|
|
353
637
|
}
|
|
354
|
-
return
|
|
638
|
+
return loaded;
|
|
355
639
|
}
|
|
356
640
|
function collectExportedCandidates(value, target, seen) {
|
|
357
641
|
if (Array.isArray(value)) {
|
|
@@ -371,10 +655,10 @@ function collectExportedCandidates(value, target, seen) {
|
|
|
371
655
|
}
|
|
372
656
|
target.push(value);
|
|
373
657
|
}
|
|
374
|
-
async function listModuleFiles(dir) {
|
|
658
|
+
async function listModuleFiles(dir, skipDirectory = () => false) {
|
|
375
659
|
let entries;
|
|
376
660
|
try {
|
|
377
|
-
entries = await
|
|
661
|
+
entries = await readdir2(dir, { withFileTypes: true });
|
|
378
662
|
} catch (error) {
|
|
379
663
|
if (isNotFoundError(error)) {
|
|
380
664
|
return [];
|
|
@@ -384,9 +668,11 @@ async function listModuleFiles(dir) {
|
|
|
384
668
|
const files = [];
|
|
385
669
|
const sortedEntries = [...entries].sort((a, b) => a.name.localeCompare(b.name));
|
|
386
670
|
for (const entry of sortedEntries) {
|
|
387
|
-
const fullPath =
|
|
671
|
+
const fullPath = join2(dir, entry.name);
|
|
388
672
|
if (entry.isDirectory()) {
|
|
389
|
-
|
|
673
|
+
if (!skipDirectory(entry.name)) {
|
|
674
|
+
files.push(...await listModuleFiles(fullPath, skipDirectory));
|
|
675
|
+
}
|
|
390
676
|
continue;
|
|
391
677
|
}
|
|
392
678
|
if (!entry.isFile()) {
|
|
@@ -415,262 +701,31 @@ function hasSupportedModuleExtension(fileName) {
|
|
|
415
701
|
}
|
|
416
702
|
return false;
|
|
417
703
|
}
|
|
418
|
-
function
|
|
704
|
+
function toPosix(path) {
|
|
705
|
+
return path.split(sep2).join("/");
|
|
706
|
+
}
|
|
707
|
+
function isRecord3(value) {
|
|
419
708
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
420
709
|
}
|
|
421
710
|
function isOntologyDocumentInput(value) {
|
|
422
|
-
if (!
|
|
711
|
+
if (!isRecord3(value)) {
|
|
423
712
|
return false;
|
|
424
713
|
}
|
|
425
714
|
return typeof value.id === "string" && typeof value.version === "string" && Array.isArray(value.objectTypes);
|
|
426
715
|
}
|
|
427
716
|
function isObjectTypeWithPropertyTokens(value) {
|
|
428
|
-
if (!isRecord2(value)) {
|
|
429
|
-
return false;
|
|
430
|
-
}
|
|
431
|
-
return typeof value.id === "string" && Array.isArray(value.properties) && Array.isArray(value.links) && isRecord2(value.p);
|
|
432
|
-
}
|
|
433
|
-
function isValueType(value) {
|
|
434
|
-
if (!isRecord2(value)) {
|
|
435
|
-
return false;
|
|
436
|
-
}
|
|
437
|
-
return typeof value.id === "string" && typeof value.name === "string" && "schema" in value && !Array.isArray(value.properties) && !Array.isArray(value.objectTypes);
|
|
438
|
-
}
|
|
439
|
-
// src/bootstrap/ontology-type-manifest.ts
|
|
440
|
-
import { access, mkdir, readdir as readdir2, readFile, writeFile } from "fs/promises";
|
|
441
|
-
import { dirname, extname, join as join2, relative as relative2, resolve as resolve2, sep } from "path";
|
|
442
|
-
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
443
|
-
var moduleExtensions2 = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"]);
|
|
444
|
-
async function discoverOntologyTypeManifest2(projectRoot) {
|
|
445
|
-
const resolvedProjectRoot = resolve2(projectRoot);
|
|
446
|
-
const ontologyDir = join2(resolvedProjectRoot, "ontology");
|
|
447
|
-
const modulePaths = await listModuleFiles2(ontologyDir);
|
|
448
|
-
const entries = new Map;
|
|
449
|
-
const valueTypeEntries = new Map;
|
|
450
|
-
const seen = new Set;
|
|
451
|
-
for (const modulePath of modulePaths) {
|
|
452
|
-
const moduleSpecifier = toGeneratedModuleSpecifier({
|
|
453
|
-
fromDir: join2(resolvedProjectRoot, ".sixb", "types"),
|
|
454
|
-
modulePath
|
|
455
|
-
});
|
|
456
|
-
const moduleNamespace = await loadOntologyModule({
|
|
457
|
-
modulePath,
|
|
458
|
-
projectRoot: resolvedProjectRoot
|
|
459
|
-
});
|
|
460
|
-
for (const [exportName, exportedValue] of Object.entries(moduleNamespace)) {
|
|
461
|
-
collectManifestEntries({
|
|
462
|
-
exportedValue,
|
|
463
|
-
exportName,
|
|
464
|
-
modulePath,
|
|
465
|
-
moduleSpecifier,
|
|
466
|
-
entries,
|
|
467
|
-
valueTypeEntries,
|
|
468
|
-
seen
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
return {
|
|
473
|
-
entries: [...entries.values()].sort((a, b) => a.objectTypeId.localeCompare(b.objectTypeId)),
|
|
474
|
-
valueTypeEntries: [...valueTypeEntries.values()].sort((a, b) => a.valueTypeId.localeCompare(b.valueTypeId)),
|
|
475
|
-
moduleCount: modulePaths.length
|
|
476
|
-
};
|
|
477
|
-
}
|
|
478
|
-
async function generateOntologyTypeManifest2(options) {
|
|
479
|
-
const projectRoot = resolve2(options.projectRoot);
|
|
480
|
-
const outFile = resolve2(projectRoot, options.outFile ?? join2(".sixb", "types", "ontology.d.ts"));
|
|
481
|
-
const discovery = await discoverOntologyTypeManifest2(projectRoot);
|
|
482
|
-
if (discovery.moduleCount === 0) {
|
|
483
|
-
try {
|
|
484
|
-
await access(outFile);
|
|
485
|
-
} catch (error) {
|
|
486
|
-
if (!isNotFoundError2(error))
|
|
487
|
-
throw error;
|
|
488
|
-
return {
|
|
489
|
-
...discovery,
|
|
490
|
-
path: outFile,
|
|
491
|
-
written: false,
|
|
492
|
-
skipped: true
|
|
493
|
-
};
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
const content = renderOntologyTypeManifest(discovery);
|
|
497
|
-
await mkdir(dirname(outFile), { recursive: true });
|
|
498
|
-
const written = await writeFileIfChanged(outFile, content);
|
|
499
|
-
return {
|
|
500
|
-
...discovery,
|
|
501
|
-
path: outFile,
|
|
502
|
-
written,
|
|
503
|
-
skipped: false
|
|
504
|
-
};
|
|
505
|
-
}
|
|
506
|
-
function collectManifestEntries(input) {
|
|
507
|
-
const exported = `(typeof import(${JSON.stringify(input.moduleSpecifier)})[${JSON.stringify(input.exportName)}])`;
|
|
508
|
-
const add = (value, typeExpression) => {
|
|
509
|
-
if (isObjectTypeWithPropertyTokens2(value)) {
|
|
510
|
-
addManifestEntry({
|
|
511
|
-
kind: "object type",
|
|
512
|
-
definition: value,
|
|
513
|
-
entry: {
|
|
514
|
-
objectTypeId: value.id,
|
|
515
|
-
modulePath: input.modulePath,
|
|
516
|
-
exportName: input.exportName,
|
|
517
|
-
typeExpression: typeExpression(value.id)
|
|
518
|
-
},
|
|
519
|
-
idOf: (entry) => entry.objectTypeId,
|
|
520
|
-
entries: input.entries,
|
|
521
|
-
seen: input.seen
|
|
522
|
-
});
|
|
523
|
-
} else if (isValueType2(value)) {
|
|
524
|
-
addManifestEntry({
|
|
525
|
-
kind: "value type",
|
|
526
|
-
definition: value,
|
|
527
|
-
entry: {
|
|
528
|
-
valueTypeId: value.id,
|
|
529
|
-
modulePath: input.modulePath,
|
|
530
|
-
exportName: input.exportName,
|
|
531
|
-
typeExpression: typeExpression(value.id)
|
|
532
|
-
},
|
|
533
|
-
idOf: (entry) => entry.valueTypeId,
|
|
534
|
-
entries: input.valueTypeEntries,
|
|
535
|
-
seen: input.seen
|
|
536
|
-
});
|
|
537
|
-
}
|
|
538
|
-
};
|
|
539
|
-
if (isOntologyDocumentInput2(input.exportedValue)) {
|
|
540
|
-
for (const objectType of input.exportedValue.objectTypes) {
|
|
541
|
-
add(objectType, (id) => `Extract<${exported}["objectTypes"][number], { id: ${JSON.stringify(id)} }>`);
|
|
542
|
-
}
|
|
543
|
-
for (const valueType of input.exportedValue.valueTypes ?? []) {
|
|
544
|
-
add(valueType, (id) => `Extract<${exported}["valueTypes"][number], { id: ${JSON.stringify(id)} }>`);
|
|
545
|
-
}
|
|
546
|
-
return;
|
|
547
|
-
}
|
|
548
|
-
if (Array.isArray(input.exportedValue)) {
|
|
549
|
-
for (const item of input.exportedValue) {
|
|
550
|
-
add(item, (id) => `Extract<${exported}[number], { id: ${JSON.stringify(id)} }>`);
|
|
551
|
-
}
|
|
552
|
-
return;
|
|
553
|
-
}
|
|
554
|
-
add(input.exportedValue, () => `typeof import(${JSON.stringify(input.moduleSpecifier)})[${JSON.stringify(input.exportName)}]`);
|
|
555
|
-
}
|
|
556
|
-
function addManifestEntry(input) {
|
|
557
|
-
if (input.seen.has(input.definition)) {
|
|
558
|
-
return;
|
|
559
|
-
}
|
|
560
|
-
input.seen.add(input.definition);
|
|
561
|
-
const id = input.idOf(input.entry);
|
|
562
|
-
const existing = input.entries.get(id);
|
|
563
|
-
if (!existing) {
|
|
564
|
-
input.entries.set(id, input.entry);
|
|
565
|
-
return;
|
|
566
|
-
}
|
|
567
|
-
throw new RuntimeError2(`[Sixb] Duplicate ontology ${input.kind} id "${id}" while generating `.concat(`the type manifest: ${relative2(process.cwd(), existing.modulePath)} and `, `${relative2(process.cwd(), input.entry.modulePath)}.`));
|
|
568
|
-
}
|
|
569
|
-
function renderOntologyTypeManifest(discovery) {
|
|
570
|
-
const lines = [
|
|
571
|
-
"// This file is auto-generated by Sixb.",
|
|
572
|
-
"// Do not edit this file directly.",
|
|
573
|
-
"",
|
|
574
|
-
'declare module "@sixb/core/ontology" {',
|
|
575
|
-
" interface SixbObjectTypeMap {"
|
|
576
|
-
];
|
|
577
|
-
for (const entry of discovery.entries) {
|
|
578
|
-
lines.push(` ${JSON.stringify(entry.objectTypeId)}: ${entry.typeExpression}`);
|
|
579
|
-
}
|
|
580
|
-
lines.push(" }", " interface SixbValueTypeMap {");
|
|
581
|
-
for (const entry of discovery.valueTypeEntries) {
|
|
582
|
-
lines.push(` ${JSON.stringify(entry.valueTypeId)}: ${entry.typeExpression}`);
|
|
583
|
-
}
|
|
584
|
-
lines.push(" }", "}", "", "export {}", "");
|
|
585
|
-
return lines.join(`
|
|
586
|
-
`);
|
|
587
|
-
}
|
|
588
|
-
async function writeFileIfChanged(path, content) {
|
|
589
|
-
try {
|
|
590
|
-
const existing = await readFile(path, "utf-8");
|
|
591
|
-
if (existing === content)
|
|
592
|
-
return false;
|
|
593
|
-
} catch (error) {
|
|
594
|
-
if (!isNotFoundError2(error))
|
|
595
|
-
throw error;
|
|
596
|
-
}
|
|
597
|
-
await writeFile(path, content, "utf-8");
|
|
598
|
-
return true;
|
|
599
|
-
}
|
|
600
|
-
async function loadOntologyModule(input) {
|
|
601
|
-
try {
|
|
602
|
-
return await import(pathToFileURL2(input.modulePath).href);
|
|
603
|
-
} catch (error) {
|
|
604
|
-
const relPath = relative2(input.projectRoot, input.modulePath);
|
|
605
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
606
|
-
throw new RuntimeError2(`Failed to load ontology module '${relPath}': ${reason}`);
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
async function listModuleFiles2(dir) {
|
|
610
|
-
let entries;
|
|
611
|
-
try {
|
|
612
|
-
entries = await readdir2(dir, { withFileTypes: true });
|
|
613
|
-
} catch (error) {
|
|
614
|
-
if (isNotFoundError2(error)) {
|
|
615
|
-
return [];
|
|
616
|
-
}
|
|
617
|
-
throw error;
|
|
618
|
-
}
|
|
619
|
-
const files = [];
|
|
620
|
-
const sortedEntries = [...entries].sort((a, b) => a.name.localeCompare(b.name));
|
|
621
|
-
for (const entry of sortedEntries) {
|
|
622
|
-
const fullPath = join2(dir, entry.name);
|
|
623
|
-
if (entry.isDirectory()) {
|
|
624
|
-
files.push(...await listModuleFiles2(fullPath));
|
|
625
|
-
continue;
|
|
626
|
-
}
|
|
627
|
-
if (!entry.isFile() || !hasSupportedModuleExtension2(entry.name)) {
|
|
628
|
-
continue;
|
|
629
|
-
}
|
|
630
|
-
files.push(fullPath);
|
|
631
|
-
}
|
|
632
|
-
return files;
|
|
633
|
-
}
|
|
634
|
-
function toGeneratedModuleSpecifier(input) {
|
|
635
|
-
const withoutExtension = stripSupportedModuleExtension(input.modulePath);
|
|
636
|
-
const relativePath = relative2(input.fromDir, withoutExtension).split(sep).join("/");
|
|
637
|
-
return relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
|
|
638
|
-
}
|
|
639
|
-
function stripSupportedModuleExtension(path) {
|
|
640
|
-
const extension = extname(path);
|
|
641
|
-
return moduleExtensions2.has(extension) ? path.slice(0, -extension.length) : path;
|
|
642
|
-
}
|
|
643
|
-
function hasSupportedModuleExtension2(fileName) {
|
|
644
|
-
return moduleExtensions2.has(extname(fileName).toLowerCase());
|
|
645
|
-
}
|
|
646
|
-
function isNotFoundError2(error) {
|
|
647
|
-
if (!(error instanceof Error)) {
|
|
648
|
-
return false;
|
|
649
|
-
}
|
|
650
|
-
const code = error.code;
|
|
651
|
-
return code === "ENOENT" || code === "ENOTDIR";
|
|
652
|
-
}
|
|
653
|
-
function isRecord3(value) {
|
|
654
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
655
|
-
}
|
|
656
|
-
function isObjectTypeWithPropertyTokens2(value) {
|
|
657
717
|
if (!isRecord3(value)) {
|
|
658
718
|
return false;
|
|
659
719
|
}
|
|
660
720
|
return typeof value.id === "string" && Array.isArray(value.properties) && Array.isArray(value.links) && isRecord3(value.p);
|
|
661
721
|
}
|
|
662
|
-
function
|
|
722
|
+
function isValueType(value) {
|
|
663
723
|
if (!isRecord3(value)) {
|
|
664
724
|
return false;
|
|
665
725
|
}
|
|
666
726
|
return typeof value.id === "string" && typeof value.name === "string" && "schema" in value && !Array.isArray(value.properties) && !Array.isArray(value.objectTypes);
|
|
667
727
|
}
|
|
668
|
-
function isOntologyDocumentInput2(value) {
|
|
669
|
-
if (!isRecord3(value)) {
|
|
670
|
-
return false;
|
|
671
|
-
}
|
|
672
|
-
return typeof value.id === "string" && typeof value.version === "string" && Array.isArray(value.objectTypes);
|
|
673
|
-
}
|
|
674
|
-
export { RuleValidationError2, isRuleDefinition2, validateRulesAtStartup, defineRule2, validateSharesAtStartup, discoverOntologySources2, withProjectModules2, listProjectModules2, discoverProjectDefinitions2, discoverOntologyTypeManifest2, generateOntologyTypeManifest2 };
|
|
675
728
|
|
|
676
|
-
|
|
729
|
+
export { isAgentContextPath2, discoverOntologyFiles, discoverAgentSkills, discoverProjectInstructions, RuleValidationError2, isRuleDefinition2, validateRulesAtStartup, defineRule2, validateSharesAtStartup, discoverOntologySources, withProjectModules2, listProjectModules2, discoverProjectDefinitions2, listOntologyModuleFiles };
|
|
730
|
+
|
|
731
|
+
//# debugId=00874CD151BEF6AC64756E2164756E21
|